选择排序

选择排序原理:

  选择排序的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.

public class SelectionSort {
	public static void main(String[] args) {
		System.out.print("选择排序:");
		int [] a={1,23,78,34,90,5,10,123,002};
		//选择排序的优化
		for(int i=0;i<a.length-1;i++){//做第i趟排序
			int k=i;
			for(int j=k+1;j<a.length;j++){//选最小的记录
				if(a[j]<a[k]){ 
					k=j;	//记下目前最小值的位置		
			}
			}		
		//在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
		if(i!=k){
			int tmp=a[i];
			a[i]=a[k];
			a[k]=tmp;
		}
	}
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+",");		
		}
	}
}

控制台的输出结果为:选择排序:1,2,5,10,23,34,78,90,123,

posted @ 2017-10-13 09:36  怡安  阅读(200)  评论(1编辑  收藏  举报