【数据结构】--【排序】--简单选择排序

 * 简单选择排序:最好的移动次数0次,但元素间的比较次数与序列初始值无关,始终是n(n-1)/2.时间复杂度始终是n*n
 * 空间复杂度为O(1)
 * 不稳定的排序:L{2,2,1}--->L{1,2,2}
 * 特点:由于每一次都会选出最小值,因此每一趟都会确定出一个元素的最终位置,

比较简单直接上代码

public class SimpleSorting {

	public static void simpleSort(int[] arr){
//		判断方式
		if(arr==null||arr.length<2){
			return;
		}
//		始终让i为后面范围内最小的值
		for(int i=0;i<arr.length-1;i++){
			int minValue=i;
			for(int j=i+1;j<arr.length-1;j++){
//				将后面的每个值都与当前最小值比较,如果i范围后面有更小的值,则更新最小值的位置
				minValue=arr[j]>arr[minValue]?minValue:j;
			}
//			交换i与最小值
			swap(arr,i,minValue);
		}
//		打印数组
		for (int i : arr) {
			System.out.println(i);
		}
	}
//	交换两个数的值
	public static void swap(int[] arr,int i,int minValue){
		int temp =arr[i];
		arr[i] =arr[minValue];
		arr[minValue]=temp;
	}
	public static void main(String[] args) {

		int[] arr = {1,3,5,7,9,2,4,6,8};
		simpleSort(arr);
	}

}

猜你喜欢

转载自blog.csdn.net/lxiansheng001/article/details/88607212
今日推荐