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 阅读 7 次 更新于 2025-06-20 01:04:15 我来答关注问题0
  • 冒泡排序算法的运作如下:1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到...

  • 冒泡排序在Python中有以下三种常见的实现方法:基本实现:描述:这是冒泡排序最直接的实现方式,通过两层循环遍历列表,比较并交换相邻元素的位置,从而将最大元素逐步移动到列表末尾。代码示例:pythondef bubble_sort_basic: n = len for i in range: for j in range: if lis[j] > lis[j+...

  •  翡希信息咨询 【Python入门算法6】冒泡排序 Bubble Sort 的三种实现方法

    基本冒泡排序:实现方式:通过两层循环,外层循环控制排序的轮数,内层循环负责在每一轮中进行相邻元素的比较和交换。代码示例:pydef basic_bubble_sort: for i in range 1): for j in range 1 i): if list[j] > list[j + 1]: list[j], list[j + 1] = list[j + 1...

  • print("原始数据:", data, "数据长度:", len(data))调用冒泡排序函数 bubble_sort(data)打印排序后的数据列表 print("排序后的数据:", data)```运行上述代码将输出随机生成的数据列表和排序后的列表。这个简单的冒泡排序实现适用于教学目的,但在实际应用中,由于其较低的效率,通常会使用更高效的...

  •  文暄生活科普 【Python入门算法6】冒泡排序 Bubble Sort 的三种实现方法

    步骤如下:首先遍历列表,进行n-1轮比较与可能的交换,每轮都将最大元素移到末尾。接着从第二个元素开始,再次进行n-2轮比较与交换,确保第二大的元素移到倒数第二个位置。以此类推,直到完成整个列表的排序。形象地说,就像是水中的气泡逐个上升至水面。在Python中,冒泡排序的实现也非常简洁。利用...

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

Python相关话题

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