python實現常用排序演算法

2021-07-02 16:23:13 字數 902 閱讀 7977

半夜醒來,閒來無事,寫寫排序演算法,興之所致,未來得及debug, 有問題自己解決。

# -*- coding: utf-8 -*-

"""created on tue may 19 00:52:47 2015

氣泡排序:

插入排序:

1、每一步就像在一首已經排序的撲克牌中再插入一張牌,這張牌標記為value

2、從最後一張開始比較,如果小於,對應的牌往後挪一位

3、找到位置以後把value牌放在對於的地方

快速排序:

理解遞迴的含義,以fibonacci函式為例,老大向小弟要數,層層下壓,直到碰到return

小弟將數層層計算回傳。

歸併排序:

和快速類似,只要定義好了歸併的方法(merge_method)

@author: zhu

"""import numpy as np

def bubble(arr):

for i in range(len(arr))[::-1]:

for j in range(i):

if arr[j]=0 and arr[index]pivot]

return less + [pivot] + greater

def merge(arr):

if len(arr)<2:

return arr

l=arr[:len(arr)/2]

r=arr[len(arr)/2:]

merge(l)

merge(r)

return merge_method(l,r)

def merge_method(l,r):

tmp,index1,index2=,0,0

for i in range(len(l)):

if index1

常用排序演算法的Python實現

排序演算法穩定性的簡單形式化定義為 如果ai aj,排序前ai在aj之前,排序後ai還在aj之前,則稱這種排序演算法是穩定的。通俗地講就是保證排序前後兩個相等的數的相對順序不變。對於不穩定的排序演算法,只要舉出乙個例項,即可說明它的不穩定性 而對於穩定的排序演算法,必須對演算法進行分析從而得到穩定的...

7種常用排序演算法(python實現)

本節為手撕 系列之第一彈,主要來手撕排序演算法,主要包括以下幾大排序演算法 演算法思想 每一步將乙個待排序的記錄,插入到前面已經排好序的有序序列中去,直到插完所有元素為止。實現 直接插入排序 def insert sort arr length len arr for i in range leng...

常用排序演算法實現

按平均時間將排序分為四類 1 平方階 o n2 排序 一般稱為簡單排序,例如直接插入 直接選擇和氣泡排序 2 線性對數階 o nlgn 排序 如快速 堆和歸併排序 3 o n1 階排序 是介於0和1之間的常數,即0 1,如希爾排序 4 線性階 o n 排序 如桶 箱和基數排序。各種排序方法比較 簡單...