python java冒泡排序

冒泡排序:将数组相邻的元素值一次比较,把大的值放在后面的元素中,数组循环一圈后,则把最大元素值互换到了最后一个元素中。数组再循环一圈后,把第二大的元素值互换到了倒数第二个元素中。按照这种方式,数组循环多圈以后,就完成了数组元素的排序。

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次,第一次取整个数组中,最大的数,第二次取整个数组中第二大的数。整个数组有多少数字,我就循环多少次。

猜你喜欢

转载自blog.csdn.net/qq_39208536/article/details/84491435
今日推荐