Python 的冒泡算法答案

本贴最后更新于 1597 天前,其中的信息可能已经时移世异

#利用嵌套for循环 完成冒泡排序
#拓展:冒泡算法是什么?
L=[4,9,10,5,111,3,244]

答案:

for i in range(0,len(L)-1):
    for j in (i,len(L)-2):
        if L[j]>L[j+1]:
            L[j],L[j+1]=L[j+1],L[j]
print(L)
  • Python
    105 引用 • 237 回帖 • 2 关注
7 回帖
请输入回帖内容 ...
  • huahua

    有更优解吗?java的吗?c语言的吗?
    欢迎来踩!

  • Chouchiehlun257248

    更优解用冒泡算法怎么做不知道,用列表推导式搭配min函数可以做出来,应该跑题了

    new_L = [L.pop(L.index(min(L))) for x in range(len(L))]
    print(new_L)
    

    实现效果:

    image.png

  • orang_qkbb

    python代码量足够精炼

  • 88888888

    华华大佬,示例代码是不是有问题?
    修改后如下:

    def bubble_sort(arr):
        for i in range(1, len(arr)):  #
            for j in range(len(arr) - i):
                if arr[j] > arr[j + 1]:
                    arr[j], arr[j + 1] = arr[j + 1], arr[j]
            # print(arr)
        return arr
    
    
    bubble_sort(L)
    
  • huahua

    非常优秀了!

  • zifeng

    public static int[] maopao(int[] shuzu) {

    	for (int i = 0; i < shuzu.length; i++) {
    		for (int j = 0; j < shuzu.length - 1; j++) {
    			if (shuzu[j] > shuzu[j + 1]) {
    				int temp = shuzu[j];
    				shuzu[j] = shuzu[j + 1];
    				shuzu[j + 1] = temp;
    			}
    		}
    	}
    	return shuzu;
    
    } 
    
  • liangtongxue
    for i in range(len(L)):
        for j in range(len(L)-1):
            if L[j]>L[j+1]:
                L[j],L[j+1]=L[j+1],L[j]
    print(L)
    
请输入回帖内容 ...