【Algorithm】选择排序】的更多相关文章

选择排序是<导论>第一章课后习题,仿照插入排序,再次运用循环不变式来证明下算法的正确性,C++ 源码: // 交换函数 void swap( int& a, int& b ) { a = a^b; b = a^b; a = a^b; } void selectSort( int *arr, int count ) { if( arr == nullptr || count == 0 ) { return; } for( int i = 1; i < count; i++…
package text.algorithm; /** * 选择排序 * O(n^2);空间复杂度O(1); */public class SelectionSort { public static void selectionSort(int[] a) { for (int i = 0; i < a.length; i++) { int k = a[i]; for (int j = i+1; j < a.length; j++) { if(k>a[j]){ int b = k; k =…
一. 算法描述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换......第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成. 举个例子:5 7 6 4 3 8 第一趟:  3 7 6 4 5 8 第二趟:  3 4 6 7 5 8 第三趟:  3 4 5 7 6 8 第四趟:  3 4 5 6 7 8 第五趟:  3 4 5 6 7 8 二.…
简单的选择排序法思想: * 首先找到数组中最小的元素,将它和数组第一个元素互换位置(如果第一个元素就是最小那么它就和自己交换). * 其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素互换位置.如此往复. * 即,它不断地选择剩余元素中的最小者. Java 示例代码如下: public class Selection { public static void main(String[] args) { int[] a = {11, 32, 49, 6, 91, 2, 15, 70, 19…
SwapSort 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/A Description In this problem your goal is to sort an array consisting of n integers in at most n swaps. For the given array find the sequence of swaps that makes the array sorted in…
随机函数生成一个超大数组: [code]: #include <iostream> #include <stdio.h> #include<time.h> #include<stdlib.h> #include<dos.h> using namespace std; int main() { freopen("random.txt","w",stdout); int n; scanf("%d&qu…
一.冒泡排序(Bubble sort) Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorithm that repeatedly steps through the list to be sorted, compares each pair of adjacent items and swaps them if they are in the wrong order. The pass th…
1 基本思想 选择排序的思想是,每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. 2,算法的实现(Java) package Algorithm; public class SelectSort { /** * @param args */ public static void main(String[] args) { int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,34…
上次我们说到二叉树排序比较,给出如下的题目 题目:创建五万个随机数,然后用分别用冒泡法,选择法,二叉树3种排序算法进行排序,比较哪种更快 废话不说直接上源码,可以看控制台结果 注意的是 需要我们需要上一篇中的Node.java 有需要的同学可以参考java中级——集合框架[2]-二叉树 package cn.jse.node; import java.util.Arrays; import java.util.List; public class SortCompare { public sta…
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/8529525.html特别不喜欢那些随便转载别人的原创文章又不给出链接的所以不准偷偷复制博主的博客噢~~ 最近适当复习了下基本的排序算法,虽然做题的时候一般都直接用sort了事,但基本的排序原理还是要了解的,所以把常见的排序又重新写了下. 基本的插入.选择.冒泡就不说了,归并排序.快速排序可以网上搜算法导论的学习,也很简单. 1.插入排序 void insert…