选择排序学习

来源:互联网 发布:任意显示号码软件 编辑:程序博客网 时间:2024/06/05 09:12

public void selectionSort(int[] a){  for(int i = 0 ; i < a.length; i++){    for(int j = i + 1; j < a.length; j++){      if(a[j] < a[i]){        int temp = a[i];        a[i] = a[j];        a[j] = temp;      }    }  }}

对int数组进行选择排序,遍历后比较,如果a[j]比a[i]小则交换,再继续遍历,后面的值再与a[i]进行比较,再交换;依次向下执行。。。直到找到最小的值与a[i]交换。这样中间的交换就变得没有意义了,可以省去这次交换,只保留小的数的下标,遍历完后,直到保留最小数的下标,再与a[i]交换,优化执行。

public void selectionSortA(int[] a){  int k , temp;  for(int i = 0; i < a.length; i ++){     k = i;    for(int j = k + 1;  j < a.length; j++){      if(a[j] < a[k]){        k = j;      }    }    temp = a[i];    a[i] = a[k];    a[k] = temp;  }}

0 0
原创粉丝点击