给数组中的数值排序,三种不同方法

2019-12-08  本文已影响0人  无是书徒

数组中的一组数据排序,如数组 [1,10,2,2,3,4,8,7,45,5,100],可以用三种方法:

一、最简单的方法,使用Sort命令。优点是简洁,缺点是改变了原有数据结构。

unsorted = [1, 10, 2, 2, 3, 4, 8, 7, 45, 5, 100]
unsorted.sort()
print('the original array', '"unsorted" = ', unsorted)

打印结果:
the original array "unsorted" = [1, 2, 2, 3, 4, 5, 7, 8, 10, 45, 100]

二、再使用min命令,通过不断找最小值

unsorted = [1, 10, 2, 2, 3, 4, 8, 7, 45, 5, 100]
sorted = []     # 建一个空数组,以把排序好的数值存入

for i in range(0, len(unsorted)):
    y = min(unsorted)      # 找出 a 中的最小值
    sorted.append(y)     # 把最小值赋予到 B 中
    unsorted.remove(y)     # 把最小值从 a 中删除

print('the original array', '"unsorted" = ', unsorted)
print('the new array', '"sorted" = ', sorted)

打印结果:
the original array "unsorted" = []
the new array "sorted" = [1, 2, 2, 3, 4, 5, 7, 8, 10, 45, 100]

三、上面两个方法,如同在解答鸡鸭同笼问题时,使用方程式。让我们在用小学生解题思路做一遍。

unsorted = [1, 10, 2, 2, 3, 4, 8, 7, 45, 5, 100]
sorted = []       

for i in range(0, len(unsorted)):
    sorted.append(unsorted[i])              # 先数组sort中的数值换成unsort一样

for i in range(0, len(unsorted)):          # 第一个循环:保证unsorted数组中的每一个数值都可被取到
    num = 0                                 # num用于记录排序的序号
    for x in range(0, len(unsorted)):      # 第二个循环:保证unsorted数组中的每一个数值都会与其它数值比大小
        if unsorted[i] > unsorted[x]:       # 比大小,如果数值比其它数值大,就加 1
            num += 1
    sorted[num] = unsorted[i]

print('the original array', '"unsorted" = ', unsorted)
print('the new array', '"sorted" = ', sorted)

打印结果:
the original array "unsorted" = [1, 10, 2, 2, 3, 4, 8, 7, 45, 5, 100]
the new array "sorted" = [1, 2, 2, 3, 4, 5, 7, 8, 10, 45, 100]

上一篇下一篇

猜你喜欢

热点阅读