基本排序演算法之插入排序

2021-06-29 06:26:22 字數 831 閱讀 2567

早上有人跟我說今天是二月二,龍抬頭的日子,大吉大利。確實,陽光明媚,風和日麗,適合出去散散步。

又想回來,目前的我,基礎著實還是有點不夠紮實,那就一點一點的再去慢慢積累吧。那就從最簡單的開始吧,真知往往就在最簡單的東西裡面,一起去挖掘吧 —-just for studying.

昨天又重新看了基本排序演算法

先來說下排序的基本概念吧

排序:給定一組記錄的集合,其相應的關鍵碼分別為,排序是將這些記錄排列成順序為的乙個序列,使得相應的關鍵碼滿足ks1≤ks2≤……≤ksn(稱為公升序)或ks1≥ks2≥……≥ksn(稱為降序)。

排序演算法的穩定性:假定在待排序的記錄集中,存在多個具有相同鍵值的記錄,若經過排序,這些記錄的相對次序仍然保持不變,即在原序列中,ki=kj且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。

接著就來說下插入排序(最簡單的排序演算法之一,內部排序演算法)

演算法描述:每次將乙個待排序的記錄按其關鍵碼的大小插入到乙個已經排好序的有序序列中,直到全部記錄排好序為止。

插入排序由n-1趟排序組成。對於p=1趟到p=n-1趟,插入排序保證從位置0到位置p上的元素為已排序狀態插入排序利用了這樣的事實:位置0到位置p-上的元素是已排過序的。然後將位置p的元素插入到已排好序的序列中直到最後乙個元素插入為止。

//插入排序實現

void insertsort(elemtype a,int n)

a[j]=temp;

}}

分析:

基本排序演算法之插入排序

插入排序的基本方法是 每步將乙個待排序的元素,按其排序碼大小,插入到前面已經排好序的一組元素的適當位置上去,直到元素全部插入為止。可以選擇不同的方法在已經排好序的有序資料表中尋找插入位置。依據查詢方法的不同,有多種插入排序。下面介紹直接插入排序 直接插入排序的基本思想 當插入第i i 1 個元素時,...

基本排序演算法 插入排序

排序方式 插入排序 插入排序的 實現雖然沒有氣泡排序和選擇排序那麼簡單粗暴,但它的原理應該是最容易理解的了,因為只要打過撲克牌的人都應該能夠秒懂。當然,如果你說你打撲克牌摸牌的時候從來不按牌的大小整理牌,那估計這輩子你對插入排序的演算法都不會產生任何興趣了 哈哈?原理 從第二個元素開始 假定第乙個元...

基本排序演算法 插入排序

排序演算法相關理論網上資料已經很多了,這裡記錄一下 方便複習。插入排序核心思想 把陣列分為有序表和無序表,從後面無序表中依次取出第乙個數,插入到有序表的適當位置。description 插入排序 1.從第乙個元素開始,該元素可以認為已經被排序 2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 ...