美文网首页
将列表按照元素与设定值的距离从小到大排列

将列表按照元素与设定值的距离从小到大排列

作者: 吃鱼喵了个鱼 | 来源:发表于2020-03-26 12:28 被阅读0次

这里自定义列表:[9,2,3,4,5,6,7,8,1]
设定值:5
代码如下:

#将列表[9,2,3,4,5,6,7,8,1]按照元素与5的距离从小到大排序
#求列表中元素与5的差的绝对值,表示距离
#如果距离相等,则按照元素大小从小到大排序

#定义一个全局变量
Standard = 5

#先求出列表元素的差值并放入原数组中
def new_arr(arr):
    #newarr = []   #新建列表
    for i in range(len(arr)):
        arr[i] = arr[i]-Standard   #将差值放入初始列表[-4,-3,-2,-1,0,1,2,3,4]
    return arr

#对差值进行选择排序,从而对相应的元素进行排序
#选择排序首先先找出列表中的最小值
def findSmallest(arr):
    small = arr[0]    #先设定初始最小值为arr[0]
    small_index = 0     #设定初始最小值对应的索引为0
    for i in range(1,len(arr)):
        #if判定如果列表中有距离相同的元素,则将元素按照从小到大排序
        if (abs(arr[i]) < abs(small)) or (abs(arr[i]) == abs(small) and arr[i] < 0):
                small = arr[i]
                small_index = i
    return small_index

#然后根据最小值函数对列表进行选择排序
def SelectionSort(arr):
    arr = new_arr(arr)
    new = []
    for i in range(len(arr)):
        small = findSmallest(arr)
        new.append(arr.pop(small)+Standard)
    return new

list1 = [9,2,3,6,5,4,7,8,1]
print(SelectionSort(list1))

输出结果为:

[5, 4, 6, 3, 7, 2, 8, 1, 9]

欢迎有更好的算法建议,谢谢!

相关文章

  • 将列表按照元素与设定值的距离从小到大排列

    这里自定义列表:[9,2,3,4,5,6,7,8,1]设定值:5代码如下: 输出结果为: 欢迎有更好的算法建议,谢谢!

  • 使用Python将列表[1, 2, 3, 4, 5, 6, 7,

    将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序 方法一 方法二

  • 04 python 列表1

    列表是什么 列表是由一系列按照特定元素排列的元素组成,其中的元素可以没有任何关系。可以将字母表中的所有字母、任意数...

  • Python基本数据类型(列表)

    列表 什么是列表 列表是一系列按照特定顺序排列的元素组成,其中列表中的元素可以是任意的。没有限制。因为列表的元素是...

  • 2018-04-16数组排序

    数组排序 sort 按照数组值或元素从小到大排列数组 rsort 按照数组值或元素从大到小排列数组(以上两种排序...

  • Python:列表简介

    概念 列表由一系列按特定顺序排列的元素组成,可以将任何元素加入列表中。Python中用[]来表示列表,用逗号分隔元...

  • 基本数据结构

    1. 线性数据结构 1.1 线性列表 线性列表是由元素构成的有限序列,即按照一定的线性顺序排列的元素集合。这种数据...

  • Python学习笔记2—列表

    一、列表是什么 列表是一系列按特定顺序排列的元素组成的,可以将任何东西加入列表中,其中的元素之间可以没有任何关系。...

  • Python基础(6) - 打乱列表顺序的操作

    手工打乱列表元素的顺序 编写函数(不使用Python模块的函数),打乱列表元素的顺序 如何对列表元素进行随机排列 ...

  • Android:布局(线性布局LinearLayout)

    线性布局是按照水平或垂直的顺序将子元素依次按照顺序排列,每一个元素都位于前面一个元素之后。 Android:lay...

网友评论

      本文标题:将列表按照元素与设定值的距离从小到大排列

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