选择排序

选择排序

预先选择一个位置,假设该位置是最值(最大或最小),把后面所有的待比较的数和当前位置的数字比较,符合规则使用第三变量index记录合规数值的数字下标,等到这一轮比较完毕后,再进行交换,一轮比较只发生一次交换(效率比冒泡高)

选择排序
代码实现:

//创建一个数组
int[] array2 = {...........};

//选择排序
for(int i = 0; i < array2.length - 1; i ++){
int index = i;
int min = array2[i];
	for(int j = i + 1; j < array2.length; j ++){
			if(array2[index] > array2[j]){
					index = j;	
			}
		}
		if(index != i){
			array2[i] = array2[index];
			  array2[index] = min;
		}
}

//forEach遍历数组
for(int show: array1){
	System.out.print(show+"  ");
}

针对选择排序,每一次比较的时候改变的是元素的下标,等一轮排序完成后,再根据下标交换值(交换下标值的条件是判断index和i是否还相等,当在每一轮比较中,如果有比第一个数还要小的数,那么就会发生下标的交换)

上一篇:程序员面试金典 - 面试题 16.21. 交换和(哈希set)


下一篇:java学习-day2