初等排序1

2021-10-19 15:31:01 字數 1646 閱讀 7329

目錄

初等排序1

一.三種初等排序演算法

1.插入排序法

2.氣泡排序法

3.選擇排序法

二.穩定排序

三.總結1

插入排序法:從左到右對資料進行排序,將待排序的資料插入前面已經排序的資料的合適位置,直到插入最後乙個資料。

插入排序法的演算法如下:

for(i=1;i=0&&a[j]>x)

a[j+1]=x;

}

在最壞的情況下,第i次迴圈需要進行i次移動,插入排序法一共要要進行如果輸入的資料本身就是按照公升序或降序排列,該演算法只需進行i次不需要移動的迴圈。

綜上,插入排序法適用於相對有序的資料。

氣泡排序法:顧名思義,氣泡排序法就是讓陣列元素像水中的氣泡一樣逐漸上浮,進而達到排序的目的。

氣泡排序法的演算法如下:

bubblesort() 

} i++;

}}

氣泡排序法在最壞的情況下,也要進行同時,演算法移動的次數也為這組資料的反序數逆序數,可以體現陣列的錯亂程度。

選擇排序法:在每一次迴圈中找到最小值,放到已經排好序的資料之後。

選擇排序法的演算法如下:

for(i=0;ia[j])

} t=a[i];

a[i]=a[min];

a[min]=t;

}

無論什麼情況,選擇排序法都要進行但是選擇排序法是不穩定的排序演算法。

穩定排序:當資料中存在2個或2個以上鍵值相等的元素時,這些元素在排序前後順序不變。

上面的插入排序法和氣泡排序法為穩定的排序演算法,而選擇排序法為不穩定的排序演算法。

用如下的笨方法可以檢查排序結果是否穩定:

for(i=0;i此方法的複雜度為o(因為氣泡排序法和插入排序法屬於穩定的排序演算法,所以將選擇排序法的結果和二者進行比較,就能知道結果是否穩定,此複雜度為o(n)。

雖然三種初等排序方法的最壞複雜度均為o(

氣泡排序法選擇排序法相比,乙個是從區域性入手減少逆序元素,乙個是從大局逐個選擇最小元素。

另外,不含flag的簡單氣泡排序法選擇排序法比較運算的次數不受輸入的資料的影響,而插入排序法受資料影響,處理一些特殊的資料時效率更高。

讀《挑戰程式設計競賽》第二天 (侵刪) 2021.2.20

( 2021.7.5 第一次修改)

初等排序演算法集合

寫在最前面 這裡的所有的排序方法都是我從挑戰程式設計競賽中學習的排序方法,也許c 裡面乙個sort 就可以搞定的事情,但是還是有必要鞏固一些基礎的知識吧,否則當去別家的公司面試連最簡單的排序都不會就尷尬了。這次的總結也權當是一次複習。一.插入排序 說明 從頭一開始依次遍歷整個陣列,當前的數字小於前面...

初等爬蟲的學習過程1

閒來無事,學習一下爬蟲的編寫過程,總歸也算是python的重點應用方式啊。首先先對爬蟲做乙個總結,爬蟲就是按照乙個乙個的鏈結爬滿網路,然後將需要的內容儲存下來。目前只是初級爬蟲的編寫,主要目的是學習流程。1 爬蟲爬蟲首先要從乙個鏈結開始,就顯示蜘蛛一開始搭建的那根線,從那根線之爬滿每乙個鏈結,然後從...

第三章 初等排序

1 aizu alds1 1 a insertion sort include includeusing namespace std int n,a 110 void print void insertsort a j 1 tmp print int main 2 aizu alds1 2 a bu...