数组:
基本排序;
冒泡排序:
相邻元素两两比较,大的往后走,第一次比较完毕后,最大值就在最大索引处。
24 57 80 69 13
第一轮:
比较4次,比较完后,结果是: 24 57 69 13 80
第二轮:
比较3次,比较完后,结果是: 24 57 13 69 80
第三轮:
比较2次,比较完后,结果是: 24 13 57 69 80
第四轮:
比较1次,比较完后,结果是: 13 24 57 69 80
总结;
总共比较了4轮,每轮的比较次数为数组的长度-1-i
int[] arr = {24, 57, 80, 69, 13};
for(int i= 0; i<arr.length-1; i++) {
for(int j=0; j<arr.length-1-i; j++) { //-1是为了防止索引越界,-i是为了提高效率
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
选择排序:
24 57 80 69 13
13 57 80 69 24
13 24 80 69 57
13 24 57 80 69
13 24 57 69 80
思路:
从第一个元素开始,依次拿该位置的元素 和之后所有的元素进行比较,小的往前,大的往后,
第一轮比较完毕后,最小值就在最小索引处。
int[] arr = {24, 57, 80, 69, 13};
for(int i= 0; i<arr.length-1; i++) {
for(int j= i + 1; j<arr.length; j++) { //-1是为了防止索引越界,-i是为了提高效率
if(arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
} |
|