python - 不使用 list.sort( ) 对列表进行从小到大排序

标签 python list sorting

作为一项智力挑战,我正在尝试做标题中描述的事情。我被困住了,想知道是否有人有任何帮助的想法..?

def main():
    my_list = [1,2,3,4,5,6,3,4,63,3]
    sort(my_list)

def sort(my_list):
    n=0
    m=1
    for number in my_list:
        if my_list[n] < my_list[m]:
            my_list[n] = my_list[n+1]
        n+=1
        m+=1
    print my_list

if __name__ == '__main__':
    main()

最佳答案

排序算法有很多,比如冒泡快速排序等等,这里有一个引用http://www.sorting-algorithms.com/ ,您可以根据描述实现其中任何一个。

下面是冒泡排序

def main():
    my_list = [1,2,3,4,5,6,3,4,63,3]
    sort(my_list)

def sort(my_list):
    size = len(my_list)
    for i in range(size):
        for j in range(size-i-1):
            if(my_list[j] > my_list[j+1]):
                tmp = my_list[j]
                my_list[j] = my_list[j+1]
                my_list[j+1] = tmp
    print my_list

if __name__ == '__main__':
    main()

希望有帮助!

关于python - 不使用 list.sort( ) 对列表进行从小到大排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18168408/

相关文章:

java - 从列表中删除条目?

linux - Unix : how does a "./process | sort" work?

mysql单表SELECT查询ORDER BY导致FILESORT

sorting - 就内存使用而言,高效的排序算法?

python - 将列表列表转换为字符串列表

python - 在 tkinter 中呈现菜单

python - 在 Python 中因式分解二次多项式

python - 仅使用圆形网格绘制三角形,python

Python-编写utf-8有符号整数

java - 如何在Java列表中找到所有最大值?