美文网首页
给数组中的数值排序,三种不同方法

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

作者: 无是书徒 | 来源:发表于2019-12-08 03:25 被阅读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]

    相关文章

      网友评论

          本文标题:给数组中的数值排序,三种不同方法

          本文链接:https://www.haomeiwen.com/subject/liwpgctx.html