104.数组冒泡排序
Posted 梦想骚年工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了104.数组冒泡排序相关的知识,希望对你有一定的参考价值。
冒泡排序意思是轻的上浮,重的下沉。原理是两个相邻的比较,如果前面的元素比后面的元素大就交换位置
如int数组{24, 69, 80, 57, 13}
第1次循环
24<69不用换位置
69<80不用换位置
80>57需要换位置,变成了{24, 69, 57, 80, 13}
80>13需要换位置,变成了{24, 69, 57, 13, 80}
只要前面的比后面的大就换位置,第1次循环完成后最大的就排在最后了
第2次循环
24<69不用换位置
69>57需要换位置,变成了{24, 57, 69, 13, 80}
69>13需要换位置,变成了{24, 57, 13, 69, 80}
69<80不用换位置
第1次循环完成后第二大的就排在倒二位置了
第3次循环
24<57不用换位置
57>13需要换位置,变成了{24, 13, 57, 69, 80}
57<69不用换位置
69<80不用换位置
第4次循环
24>13需要换位置,变成了{13, 24, 57, 69, 80}
24<57不用换位置
57<69不用换位置
69<80不用换位置
从上面可以看出,第1次循环,比较4次,最大的就出来了,第2次循环实际就不用和最后的比较了,比较3次就可以,第3次循环比较2次,第4次循环比较1次,长度为5的数组循环比较4次
代码实现:
for (int i = 0; i < arr.length - 1; i++) {//arr.length - 1是比较次数
for (int j = 0; j < arr.length -1 - i; j++) {//减1为防止arr[j + 1]索引越界,减i是每循环一次就少比较一次
if(arr[j] > arr[j + 1]) {//前面的比后面的大就换值
//下面三行是最普通的交换两个变量的值
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
以上是关于104.数组冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章