用python實現list的排序方法
1、list列表排序
方法1.用list的內建函式list.sort進行排序
list.sort(func=none,key=none,reverse=false)
方法2.用序列型別函式sorted(list)進行排序
>>>list = [5,3,9,1]
>>>list
[5,3,9,1]
>>>sorted(list)
[1,3,5,9]
>>>list
[5,3,9,1]
>>>list.sort()
>>>list
[1,3,5,9]
sorted(list)返回乙個物件,可以用作表示式,原生的list順序不變,生成乙個新的排好序的list物件
list.sort()不會返回物件,改變原有的list順序。
2、氣泡排序
1.比較相鄰的元素,如果第乙個比第二個大,就交換他們兩個
2.對每一對相鄰的元素都進行比較,從第一對到最後一對。這時,最後的元素就是最大的數。
arr = [3,9,1,6]
def func(arr):
n = len(arr)
for j in range(0,n-1):
for i range(0,n-1-j):
if arr[i] > arr[j]:
arr[i],arr[i+1] = arr[i+1],arr[i]
fun(arr)
print(arr) # arr = [1,3,6,9]
3、插入排序
array = [1,4,8,0,2,10,7,3]
def insert_sort(array):
for i in range(len(array)):
for j in range(i):
if array[i] < array[j]:
array.insert(j, array.pop(i))
return array
print(insert_sort(array))
4、快速排序
array = [1,4,8,0,2,10,7]
def quick_sort(array):
def recursive(begin, end):
if begin > end:
return
l, r = begin, end
pivot = array[l]
while l < r:
while l < r and array[r] > pivot:
r -= 1
while l < r and array[l] <= pivot:
l += 1
array[l], array[r] = array[r], array[l]
array[l], array[begin] = pivot, array[l]
recursive(begin, l - 1)
recursive(r + 1, end)
recursive(0, len(array) - 1)
return array
print(quick_sort(array))
python中list賦值問題
有些時候我們在for迴圈中想把某乙個list或者dict賦值給一些元素,比如下面這種場景 我們想得到的是lst2的值是 0 0,1 0,1,2 0,1,2,3 0,1,2,3,4 但是結果是 0,1,2,3,4 0,1,2,3,4 0,1,2,3,4 0,1,2,3,4 0,1,2,3,4 lst1...
STL中的List排序問題
最近想鑽研一下stl源 於是照著侯捷的 stl原始碼剖析 看sgi stl,今天想寫寫list的排序演算法。源 如下 template template void list tp,alloc sort strictweakordering comp carry.swap counter i if i...
python中dict和list排序
1 list排序 列表的排序是python內建功能,自身含有sort方法 如 s 2,1,3,0 s.sort 0,1,2,3 2 dict排序 對字典的排序,因為每乙個項包括乙個鍵值對,所以要選擇可比較的鍵或值進行排序 sorted iterable cmp key reverse cmp和key...