python--排序的方法

#1:python 内建函数sort()

list = [1,3,2,4,8,5,7]
list.sort()
print(list)

#2;python 内建函数sorted()

list = [1,3,2,4,8,5,7]
a =sorted(list)
print(a)

#3:python 内建函数reverse(),反转

list = [1,2,3,4,5,6,7]
list.reverse()
print(list)

#3.1

lista = [1,2,3,4,5,6,7,8]
#求长度减一,这是元素位置的
lengtha = len (lista)-1
#定义一个空list
listb =[]
#循环处理
while lengtha >=0:
    #最后一个元素,追加
    listb.append(lista[lengtha])
    lengtha -=1
print(listb)

#4;set去重并排序

list = [2,2,2,1,1,1,5,5,3,4,4]
a = set(list)
print(a)
#5:冒泡排序。遍历列表,一次比较两个元素,比较元素大小,依次进行排序,直到结束
def lista(listb):
    count = len(listb)
    for i in range(0,count):
        for j in range(i +1, count):
            if listb[i] >listb[j]:
                listb[i],listb[j] = listb[j],listb[i]
    return listb

listb = lista([5,2,3,1,4,7,8,6,9])
print (listb)
2;
lista = [2,3,1,4,6,5,7,9,8,10]
def sort (lista):
    n = len(lista)
    for i in range(0,n - 1):
        for j in range(0,n-1-i):
            if lista[j] > lista[i+1]:
                lista[j],lista[i +1]= lista[i +1],lista[i]

sort(lista)
print(lista)

“”“6:快速排序:通过一趟排序将要排序的数据分割成独立的两部分,
其中一部分的所有数据都比另外一部分的所有数据都要小,
然后再按此方法对这两部分数据分别进行快速排序,
整个排序过程可以递归进行,以此达到整个数据变成有序序列
“””

def quick_sort(qlist):
    if qlist == []:
        return []
    else:
        qfirst = qlist[0]
        qless = quick_sort([l for l in qlist[1:] if l < qfirst])
        qmore = quick_sort([m for m in qlist[1:] if m >= qfirst])
        return qless + [qfirst] + qmore
qlist = quick_sort([4, 5, 6, 7, 3, 2, 6, 9, 8])
print(qlist)

“”“6:选择排序:第1趟,在待排序记录r1 ~ r[n]中选出最小的记录,将它与r1交换;第2趟,
在待排序记录r2 ~ r[n]中选出最小的记录,将它与r2交换;
以此类推,第i趟在待排序记录r[i] ~ r[n]中选出最小的记录,将它与r[i]交换,
使有序序列不断增长直到全部排序完毕
“””

def select_sort(slist):
    for i in range(len(slist)):
        x = i
        for j in range(i, len(slist)):
            if slist[j] < slist[x]:
                x = j
        slist[i], slist[x] = slist[x], slist[i]
    return slist
slist = select_sort([4, 5, 6, 7, 3, 2, 6, 9, 8])
print(slist)

42、lista=[2,3,5,4,9,6],从小到大排序,不许用sort,输出[2,3,4,5,6,9]
#利用min()方法求出最小值,原列表删除最小值,新列表加入最小值,递归调用获取最小值的函数,反复操作
#另一种方法是使用冒泡排序也可以

lista = [2,3,5,4,9,6]
newlist = []
def get_min(listin):
    # 获取列表最小值
    a = min(listin)
    # 删除最小的值
    listin.remove(a)
    # 将最小的值插入到新列表
    newlist.append(a)
    # 做判断,保证最后不列表里面有值,递归调用
    if len(listin) > 0:
        get_min(listin)
    return newlist
newlist = get_min(lista)
print(f'处理之后的list为:{newlist}')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值