黑马程序员技术交流社区
标题:
冒泡排序法和选择排序法
[打印本页]
作者:
橘猫自由
时间:
2015-12-20 10:01
标题:
冒泡排序法和选择排序法
数组:
基本排序;
冒泡排序:
相邻元素两两比较,大的往后走,第一次比较完毕后,最大值就在最大索引处。
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;
}
}
}
作者:
孜孜不倦
时间:
2015-12-20 14:49
赞一下。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2