1D1A 1 插入排序

2021-08-15 02:10:25 字數 1172 閱讀 7950

演算法導論第乙個演算法就是插入排序,思想簡單,如果是從小到大排序,就是從第二個數開始,和前邊的數比較,直到大於等於前邊那乙個數,然後放在那個位置。

而且,先用python寫,就相當於偽**,特別好,既有思路,還把python練習一下,然後再用c++。

python**:

def

insertsort

(a):

for i in range(1,len(a)):

key = a[i]

j = i - 1

while j >= 0

and key < a[j]:

a[j+1] = a[j]

j = j - 1

a[j+1] = key

if __name__ == "__main__":

a =

input_a = input('please input:')

for item in input_a.split():

insertsort(a)

print(a)

c++**:

void insertsort(vector

& a)

a[j+1] = key;

}}

第一天,完成任務。凌晨1:48 睡覺覺嘍

選擇排序(selection sort)

思想:全域性找到最小值,和第乙個數互換,然後在剩下的數中找到最大的數,和第二個數互換。。。。

python實現:

def

selectionsort

(a):

length = len(a)

for i in range(length - 1):

min_num = i

for j in range(i+1,length):

if a[j] < a[min_num]:

min_num = j

a[i],a[min_num] = a[min_num],a[i]

return a

c++:

void selectionsort(vector

& a)

}swap(a[i],a[minnum]);

}}

1)插入排序

直接插入排序的理解 來自維基百科 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等...

1 插入排序

本來是想對插入排序做乙個詳細的說明 從演算法原理 演算法優劣 演算法實現一一說起。但是要將演算法原理說的通俗易懂,不是個簡單的事情,常常需要很好的文筆和配上詳細的圖。但是最近需要複習準備面試,確實沒什麼時間去寫一系列完整地說明演算法的部落格,所以這次就只是寫下演算法實現 c 的細節和詳細注釋,找到新...

1 插入排序

一種增量式的做法 在處理少量資料元素進行排序的有效演算法。由內外兩層for迴圈構成,內迴圈做比較,外迴圈控制哪個是插入值。排序引數是乙個陣列 a 1 n 包含n個待排序數 a j 先放入key變數中。將陣列邏輯劃分為 手牌區 a 1 j 1 key區域 a j 和 待插入區 a j 1 n 開始時手...