直接选择排序
直接选择排序
A.第1趟从中找到最小的。与R0交换
B.第2趟从剩余中找到最小的。与R1交换
........................................................
代码例如以下
//直接选择排序 void Selectsort(int []a,int n) { //定义变量 int i, j, nMinIndex; for(i=0;i<n;i++) { //最小值标志位 nMinIndex = i; //循环找出最小值 for(j=i+1;j<n;j++) { //进行比較 if (a[j] < a[nMinIndex]) { //假设小于的话,标志位改变 nMinIndex = j; } } //经过上述循环后找出最小值 if(nMinIndex!=i) { //数值进行交换 int c = a[i]; a[i] = a[nMinIndex]; a[nMinIndex] = c; } } }
冒泡与直接选择排序比較
事实上直接选择排序非常像冒泡排序法,可是它比冒泡好的地方是不用每次不停的进行冒泡。也就是数据比較交换。可是冒泡比它好的地方在于,假设已经排好序的话,就能够直接停止