【排序】6.选择排序
每一次从待排数据中选择最小或最大的元素,存放到序列的起始位置,知道全部待排数据排完
public static void selectsort(int a[]){ if(a==null||a.length==0){ return; } for (int i = 0; i < a.length-1; i++) { int flag=i; for (int j = i+1; j < a.length; j++) {//找到合适的数,进行标记 if (a[flag]<a[j]) { flag=j; } } if (flag!=i) {//一轮完成后,交换顺序 int n=a[i]; a[i]=a[flag]; a[flag]=n; } } }
它是一种不稳定的排序算法
时间复杂度:时间复杂度为 O(N2)
因为交换次数比较少,比冒泡排序要快
空间复杂度:O(1)

浙公网安备 33010602011771号