python實現列表的排序

2022-08-13 03:09:23 字數 1248 閱讀 9064

群裡有同行遇到這樣乙個面試題:有乙個整數構成的列表,需要給這個列表進行從小到大存入到另乙個列表中。

本身排序可以用python的內建函式sort和sorted,但題目的要求是手動實現。

看起來很簡單,實現的發現並不容易,花了半個小時才除錯好。

解題思路:

1.將列表中的第1個元素放入新列表,然後將元素的索引存入索引列表,然後遍歷列表,如有比新列表最後乙個元素小,那做替換動作,索引也要做替換動作。然後將列表第2個元素放入新列表,然後遍歷列表進行第2個元素的比較。。。

直接上**:

def mysort(list):

newlist =

indexlist =

for i in range(len(list)):

print("第%d個元素操作:" % (i+1))

flag = 0

for j in range(len(list)):

try:

if flag == 0 and j not in indexlist:

print("將第乙個元素且未存入新列表的元素%d暫存入新列表" % list[j])

print("索引%d暫存入到索引列表" %j)

flag =1

elif list[j] < newlist[i] and flag == 1:

print("遍歷列表,發現新元素%d更小" % list[j])

if j not in indexlist:

print("新元素%d替換暫存元素%d" % (list[j],newlist[i]))

newlist.remove(newlist[i])

indexlist.remove(indexlist[len(indexlist) - 1])

else:

print("元素%d的索引%d已經在新列表中,不能重複存入" % (list[j],j))

except indexerror as f:

pass

print("當前索引列表是:%s" % indexlist)

print("新列表元素是%s:"%newlist)

print("----------------------------------")

return newlist

oldlist = [0,6,100,0,1,5,2,4,1,14,2,-1]

newlist = mysort(oldlist)

print(newlist)

Python如何實現列表排序

python 列表排序 題目 班級同學的成績存放在列表中,list 523,435,712,566,613,675,620,689,643 請將列表內的成績從小到大進行排序。1 氣泡排序 基本思想 相鄰的兩個元素進行比較,然後把較大的元素放到後面 正向排序 在一輪比較完後最大的元素就放在了最後乙個位...

python 列表排序 python列表排序有哪些

python列表排序 1 氣泡排序,是一種簡單的排序演算法,它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來 2 插入排序,通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。1 氣泡排序 氣泡排序 bubble sort 是一種簡單的排序...

Python要如何實現(列表)排序?

排序,是許多程式語言中經常出現的問題。同樣的,在python中,如何是實現排序呢?以下排序都是基於列表來實現 python中擁有內建函式實現排序,可以直接呼叫它們實現排序功能 python 列表有乙個內建的list.sort 方法可以直接修改列表。還有乙個sorted 內建函式,它會從乙個可迭代物件...