package sort; /* * 选择排序 * 扫描整个列表,找到最小元素,然后跟第一个元素交换将最小元素放在有序表的最终位置上 * 然后从第二个元素开始扫描列表,重复跟第一个元素相同的动作 * 在对列表进行a.length-1趟循环以后,就完成了列表的排序 */ public class SelectionSort { public static void main(String[] args) { int a[] = {2,5,1,3,9,4,6,8,7}; System.out.println("排序前:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } for(int i=0;i<a.length-1;i++){ int temp; int k = i; //用k记录这一趟循环中暂时最小的那个元素的地址 for(int j=i;j<a.length-1;j++){ if(a[k]>a[j+1]){ //每个元素都跟目前这一趟最小的元素a[k]比较 k = j+1; } } if(k!=i){ //如果k=i,即k的值没有发生变化,不用交换 temp = a[k]; a[k] = a[i]; a[i] = temp; } } System.out.println("/n/n排序后:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } }