演算法筆記(一) 插入排序和線性查詢

2022-02-24 11:44:18 字數 1148 閱讀 8369

之前的版本感覺有點難以理解,重新修改下。

(一)插入排序

假如我們打牌時候,將手中的牌從左到右按順序排列(例如:1、2、5、7、8)

這時抽到一張新牌3,從右到左和手上的牌進行比較,然後插入到2的後面(1、2、3、5、7、8),3後面的牌的索引全部+1.

實現**:

1

import

numpy as np23

#建立乙個ndarray物件

4 a = np.array([5,2,4,7,6,10,1,3,9])56

#公升序排序版本

7for j in

range(len(a)):

8 key =a[j]

9 i = j - 1

10while i >= 0 and key 11 a[i+1] =a[i]

12 i = i-1

13 a[i+1] =key

1415

print

(a)16

#降序排序版本

17for j in

range(len(a)):

18 key =a[j]

19 i = j - 1

20while i >= 0 and key >a[i]:

21 a[i+1] =a[i]

22 i = i -1

23 a[i+1] =key

2425

print(a)

(二)線性查詢

1

import

numpy as np23

#找到結果,返回索引,否則返回none

4def

search(array,key):

5for j in

range(len(array)):

6if array[j] ==key:

7returnj8

return

none

910 array = np.array([5,2,4,7,6,10,1,3,9])

11 key = 10

1213

print(search(array,key))

演算法 一 插入排序

插入排序演算法類似於玩撲克時抓牌的過程,玩家每拿到一張牌都要插入到手中已有的牌裡,使之從小到大排好序。撲克牌的插入排序 也許你沒有意識到,但其實你的思考過程是這樣的 現在抓到一張7,把它和手裡的牌從右到左依次比較,7比10小,應該再往左插,7比5大,好,就插這裡。為什麼比較了10和5就可以確定7的位...

排序演算法(一) 插入排序

首先,對排序演算法 輸入 n 個數 輸出 序列的乙個排序,使得a1 a2 an 待排序的數為key 插入排序演算法,是乙個對少量元素進行排序的有效演算法.其偽 如圖 插入排序演算法在形式上類似於我們平時打牌時,邊抽牌邊整理撲克牌的順序,我們將新的牌與手中已經整理好順序的撲克牌進行比較,最終將抽到的牌...

排序演算法(一) 插入排序

一 插入排序 直接插入 二分插入 希爾排序 基本思想 從前面已經排序好的資料中查詢合適的位置,將待排序資料插入到該位置 從後面向前找合適的位置 1 直接插入排序 基本思想 從右向左查詢 從左邊已排序好的資料中查詢合適的位置,插入待排序的資料。private static void derictins...