数组排序是指把数组中的数据由小到大进行重新的组织。我们接下来介绍一下数组排序之选择排序。
选择排序:首先找出数组中最小元素与位置0位置处元素交换,再找出次最小元素与位置1元素交换,再找出次最小元素与位置2元素交换....依次类推,最终实现了从小到大的升序排序
public static void main(String[] args) {
/**
* 选择排序:首先找出数组中最小元素与位置0元素交换,
* 再找出次最小元素与位置1元素交换,
* 再找出次最小元素与位置2元素交换,
* 最终实现了从小到大的升序排序
*
*/
// 1.现在随便定义一个数组
int[] arrs = {20,50,40,10,30,60};
// 2.首先通过循环来遍历数组
for(int i = 0 ; i < arrs.length ; i++ ){
// i 从 0 1 2 3 4 5开始依次寻找这六个位置应该放的最小值!!
// 当前位置是 arrs[i]
// 我们接下来要从这个位置的后面开始依次找出是否有比当前这个位置元素更
// 小的元素,如果有,把更小的元素与这个位置的元素进行交换即可
// i+1表示从这个位置的后一个位置开始循环找是否有比i位置更小的元素
for( int j = i+1 ; j < arrs.length ; j++ ){
if(arrs[j] < arrs[i]){
// 交换位置
int temp = arrs[i]; // 临时存放i位置处的元素值
// 开始交换
arrs[i] = arrs[j];
arrs[j] = temp ;
}
}
}
// 遍历输出数组,看是否排序完成!
for(int ele : arrs){
System.out.println(ele);
}
}
数组是:
int[] arrs = {20,50,40,10,30,60};
流程:
当i=0,表示寻找第一个位置应该放置的最小元素,所以从j=1开始找,第一轮找完数组的内容是
int[] arrs = [10,..........]; 此时已经找出来了第一个位置应该放置的最小值!
当i=1,表示寻找第二个位置应该放置的最小元素,所以从j=2开始找,第二轮找完数组的内容是
int[] arrs = [10 20,........]; 此时已经找出来了第二个位置应该放置的最小值!
当i=2,表示寻找第三个位置应该放置的最小元素,所以从j=3开始找,第三轮找完数组的内容是
int[] arrs = [10 20,30........]; 此时已经找出来了第一个位置应该放置的最小值!
....
最终实现了数组的排序!!