冒泡排序:将数组相邻的元素值一次比较,把大的值放在后面的元素中,数组循环一圈后,则把最大元素值互换到了最后一个元素中。数组再循环一圈后,把第二大的元素值互换到了倒数第二个元素中。按照这种方式,数组循环多圈以后,就完成了数组元素的排序。
1.使用for循环(外层循环),来指定数组要循环的圈数(数组循环的圈数为数组长度-1)
2.在每一圈中,通过for循环(内层循环)来完成相邻的元素值依次比较,把大的值放后面的元素中
3.每圈内层循环的次数,由第几圈循环来决定。
a) 进行第一圈元素比较时,内层循环次数为数组长度-1
b) 进行第二圈元素比较时,内层循环次数为数组长度-2
c) 依次类推,得出结论:进行第n圈元素比较时,内层循环次数为数组长度-n
JAVA代码如下:
//冒泡排序
public static void bubbleSort(int[] arr) {
//功能
//外层循环用来控制数组循环的圈数
for (int i = 0; i<arr.length-1;i++) {
//j<arr.lenth-1为了避免角标越界
//j<arr.lenth-1-i 为了比较效率,避免重复比较
//内层循环用来完成元素值比较,把大的元素值互换到后面
for (int j =0;j<arr.length-1-i;j++) {
if (arr[j]>arr[j+1]) {
int temp =arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
python代码如下:
list=[4,3,2,1]
index=len(list)
for i in range(index-1):
for j in range(index-1-i):
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
print(list)
冒泡排序个人理解,例如一个数组,有5个数。我就循环5次,第一次取整个数组中,最大的数,第二次取整个数组中第二大的数。整个数组有多少数字,我就循环多少次。