105.数组选择排序
Posted 梦想骚年工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了105.数组选择排序相关的知识,希望对你有一定的参考价值。
选择排序:用一个索引位置的元素依次和其他索引的元素比较,如果比后面的大就交换位置
int数组{24, 69, 80, 57, 13}
第1次循环
24<69不用换位置
24<80不用换位置
24<57不用换位置
24>13需要换位置,变成了{13, 69, 80, 57, 24}
第1次循环完后最小的就出来了,排在最前
第2次循环就不用考虑13了
69<80不用换位置
69>57需要换位置,变成了{13, 57, 80, 69, 24}
57>24需要换位置,变成了{13, 24, 80, 69, 57}
第1次循环完后最小两个排在前面了
第3次循环,,不用考虑13和24了
80>69需要换位置,变成了{13, 24, 69, 80, 57}
69>57需要换位置,变成了{13, 24, 57, 80, 69}
第4次循环
80>69需要换位置,变成了{13, 24, 57, 69, 80}
4次循环完成后排序完成13, 24, 57, 69, 80
第1次arr[0]分别与arr[1-4]比较,比较4次
第2次arr[1]分别与arr[2-4]比较,比较3次
第3次arr[2]分别与arr[3-4]比较,比较2次
第4次arr[3]与arr[4]比较,比较1次
代码实现:
for (int i = 0; i < arr.length - 1; i++) {
//在内循环中i是不变的,也就是每次要和其他元素对比的元素,自己不用和自己比,所以j应该等于i+1
for (int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
以上是关于105.数组选择排序的主要内容,如果未能解决你的问题,请参考以下文章