首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冒泡排序错误

冒泡排序错误
EN

Stack Overflow用户
提问于 2011-11-04 04:02:57
回答 1查看 311关注 0票数 0

我正在尝试编写和优化冒泡排序,但我的代码实际上并不能对列表进行排序。对于为什么会提前停止,有什么建议吗?

代码语言:javascript
复制
#!/usr/bin/env python

from random import *
import time

def bubble(lst):
    counter = 0
    n = len(lst)
    while n > 0:
        temp = 0
        for i in range(1, n - 1):
            if lst[i] > lst[i + 1]:
                lst[i], lst[i + 1] = lst[i + 1], lst[i] # swap
                temp = i
                counter += 1 # to compare the speed to the
                             # unoptimized bubble sort
            n = temp
    return counter

def main():
    lst = range(10)
    shuffle(lst)
    print lst
    start = time.time()
    counter = bubble(lst)
    print lst
    end = time.time()
    print counter
    print "time", end - start

main()
EN

回答 1

Stack Overflow用户

发布于 2011-11-04 20:10:51

这应该可以解决这个问题:

代码语言:javascript
复制
def bubble(lst):
    counter = 0
    n = len(lst)
    while n > 0:
            temp = 0
            for i in range(0,n-1): # <- first element is at position 0
                    if lst[i] > lst[i+1]:
                            lst[i],lst[i+1] = lst[i+1],lst[i]  #swap
                            temp = i+1 # <- the last swapped position
                            counter += 1
            n = temp
    return counter
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8001111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档