python冒泡排序法求告知哪里错了_:з」∠_

冒泡排序算法的运作如下:1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到...
python冒泡排序法求告知哪里错了_:з」∠_
冒泡排序算法的运作如下:
1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
3. 针对所有的元素重复以上的步骤,除了最后一个。
4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

所以可以看出,你代码仅仅比较了一次相邻的两个,而没有继续往后比较,输出的第三行开始出现问题。至于那个None,因为你定义函数没有返回值的原因。
我给你三个函数,你对比一下:
def list_sort_new(list_in): for j in range(len(list_in)-1, 0 ,-1):for i in range(0, j): if list_in[i]>list_in[i+1]: list_in[i],list_in[i+1] = list_in[i+1],list_in[i] return list_indef list_sort_old(list_in): for j in range(len(list_in)-1, 0 ,-1): for i in range(0, j): if list_in[i]>list_in[i+1]:list_temp = list_in[i]list_in[i] = list_in[i+1]list_in[i+1] = list_temp return list_indef list_sort_test(list_in): for j in range(len(list_in)-1, 0 ,-1):for i in range(0, j): if list_in[i]>list_in[i+1]:print "before>> " + str(list_in[i])list_in[i] = list_in[i+1]print "after>> " + str(list_in[i])list_in[i+1] = list_in[i]print "and> " + str(list_in[i+1]) return list_inlist_test = [2, 1, 3, 44, 22, 53, 25, 26]print list_testprint "*"*20print(list_sort_test(list_test))其中函数list_sort_new()和list_sort_old()都能实现你的目的,其中list_sort_new()中使用了指派运算, 就相当于c语言的i++。 list_sort_old()类似于你的想法,其中j的for实现了全部比较,而倒序减少了不必要的比较,list_sort_test()告诉了你,为什么需要一个变量来充当缓存。
住好运。。。。
2015-10-09
mengvlog 阅读 26 次 更新于 2025-08-11 11:59:58 我来答关注问题0
  • 冒泡排序算法的运作如下:1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到...

  •  校企律说法 python 解决冒泡排序法 实在看不懂呀 谁能一行一行的给我讲解一下,尤其是-1 -1 -1 这个地方 跪求 谢谢了

    内层的for循环,当j=4时,i的遍历结果为0,1,2,3。接下来,当你理解冒泡排序的基本原理后,就会明白,在j=4时,通过i的遍历对numbers中的两两相邻元素进行比较和交换,将最小的数字移动到最前面。当j=3时,同样地,将次小的数字移动到第二位。以此类推,直到所有元素排序完毕。希望这段解释能帮...

  •  解0人 python 解决冒泡排序法 实在看不懂呀 谁能一行一行的给我讲解一下,尤其是-1 -1 -1 这个地方 跪求 谢谢了

    然后只要你明白冒泡排序的原理,就能知道,当j=4时通过i的遍历对numbers的两两相邻元素对比交换把最小的数字放到最前面 当j=3时...把第二小的元素放到第二的位置...祝你成功!

  •  环球青藤 python冒泡排序简单实现方法

    这篇文章主要介绍了python冒泡排序简单实现方法,实例分析了Python冒泡排序的简单实现技巧,具有一定参考借鉴价值。分享给大家供大家参考。具体实现方法如下:!/usr/bin/pythonimportrandomdefbubble_sort(data): length=len(data) foriinrange(len(data)-1): forjinrange(len(data)-1): if(dat...

  •  扈晓兰Fg 求教Python题

    最佳状态:待排序的序列本身是有序序列,排序次数根据优化后的代码,可以得出是n-1次,时间复杂度为O(n);最坏的情况:待排序的序列是逆序的,此时需要排序1 + 2 +3 ……(n - 1) = n(n – 1 )/2次,时间复杂度为O(n^2)。空间复杂度 冒泡排序法需要一个额外空间(temp变量)来交换元素...

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部