資料結構和演算法之排序演算法

2022-08-02 04:15:07 字數 1360 閱讀 1222

插入排序的基本思想

每次將乙個待排序的資料元素,按照其關鍵字大小插入到前面已經排好序的有序的適當位置,使插入以後的資料序列仍然為乙個有序數列,直到整個序列稱為有序序列為止。

直接插入排序(把待排序元素分成兩部分,一部分是沒排好序的元素,另一部分是排好序的元素。把沒排好序的元素逐一插入以排好序的部分)

折半插入排序(向有序序列中插入元素,插入位置可以不斷地平分有序序列,並把待插入的元素的關鍵字與平分有序序列得到的關鍵字比較,以確定下一步要評分的序列,直到找到合適的插入位置為之。)

希爾排序(先將整個待排序序列分割成若干子串行,每個子串行由相差一定長度的資料元素組成【這個相差的長度稱為增量】)

1

/**直接插入排序演算法2*

@param

obj3

* @return4*/

5public

static

int selectsort(int

obj)

1617}18

return

obj;

19 }

直接插入排序演算法

1

/**折半插入排序2*

3* @param

obj4

* @return5*/

6public

static

int halfsort(int

obj)

18for (int i = len-1; i >max+1; i--)

21 obj[max=1]=value;

22return

obj; 23}

24

折半插入排序

1

/**希爾排序2*

@param

obj3*/4

public

static

void shellsort(int

obj)25}

26//

把臨時變數賦值到當前下標所在位置

27 obj[pointer+len]=temp;28}

29 len=len/2; //

計算下次分割的間隔的步長

30 }

希爾排序

交換排序

氣泡排序(比較相鄰的兩個資料元素的關鍵字,如果他們之間的大小關係與期望的關係相反,則交換兩個元素的位置,否則不交換。)

快速排序

完全圖是每對頂點之間都恰好有一條邊的簡單圖

資料結構之排序演算法

1.插入排序 直接插入排序 include void insertsort int unsort int length unsort j temp int main void insertsort num,7 int i 0 for i i 7 i return 0 折半插入排序 include v...

資料結構之排序演算法

學過好久的東西,感覺都忘記的差不多了,雖然可能日常寫 的過程之中也可能寫過一些演算法,但是從來都沒有規整,最近忙裡偷閒,寫點關於排序的演算法,當然好多人都寫過一些很不錯的演算法blog,我寫一下,只是方便自己日後檢視,當然也給有需要的朋友一些參考,歡迎指正 排序演算法有 氣泡排序,選擇排序,插入排序...

資料結構之排序演算法

1 直接插入排序 將乙個記錄插入到已經排好序的有序表中,只有當排序結束時每個元素才能進入到正確的位置,複雜度為o n2 優點 演算法簡單 易行,當待排序記錄數量較少時,該演算法非常有效 缺點 資料規模較大時,效率比較低。演算法insertsort r,n insertsort1.插入排序 for j...