选择排序
http://baike.baidu.com/view/547263.htm
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。
分析:
选择排序(SelectSort)算法的基本思想是:在待排序的无序数组中找出最小数(或最大数)并将它与序列中的第一个记录交换位置;然后从不包括第一个位置上的记录序列中再次选择最小数(或最大数)并将它与序列中的第二个记录交换位置;如此重复,直到序列中只剩下一个数为止。
假定有n个数的序列,要求按递增的次序排序,则实现步骤为:
第一步:从n个数中找到最小数的下标,将最小数与第一个数交换位置,通过这一趟排序,第一个数位置就确定好了。
第二步:除去已经排序好的数外,在剩下的n-1个元素中再按步骤一的方法选出第二小的数,与未排序数中的第一个数交换位置。
第三步:重复步骤二,最后构成递增数列。
public class SelectSortTest { public static void main(String[] args) { int data[] = { 22, 15, 7, 35, 89, 13, 6, 12, 3, 9 }; selectSort(data); for (int i = 0; i < data.length; i++) { System.out.println(data[i]); } } private static void selectSort(int[] data) { for (int i = 0; i < data.length-1; i++) { int min_index=i; int min_value=data[i]; for (int j = i+1; j < data.length; j++) { if (data[j]<min_value) { min_index=j; min_value=data[j]; } } int temp=data[i]; data[i]=min_value; data[min_index]=temp; } } }
相关推荐
randy0 2020-11-17
lixiaotao 2020-10-07
美丽的泡沫 2020-09-08
nongfusanquan0 2020-08-18
hang0 2020-08-16
earthhouge 2020-08-15
算法改变人生 2020-07-28
troysps 2020-07-19
Broadview 2020-07-19
chenfei0 2020-07-18
风吹夏天 2020-07-07
yangjingdong00 2020-07-05
数据与算法之美 2020-07-05
shawsun 2020-07-04
数据与算法之美 2020-07-04
要知道时间复杂度只是描述一个增长趋势,复杂度为O的排序算法执行时间不一定比复杂度为O长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n2的值实际比 knlogn+c还要小。
Evankaka 2020-07-04
田有朋 2020-06-28