一些基本的排序演算法(正在修改)

2021-08-13 03:19:53 字數 3876 閱讀 6329

關鍵定義:

typedef

int keytype; //int 關鍵字型別

typedef

structrectype; //排序元素型別

如打撲克,一開始的插牌動作。

如資料:-14 98 76 47 26 48 62 18 74 99

第一輪:-(14 98)76 47 26 48 62 18 74 99

第二輪:-(14 76 98)47 26 48 62 18 74 99

第三輪:-(14 47 76 98)26 48 62 18 74 99

. .

. 第八輪:-(14 18 26 47 48 62 74 76 98)99

第九輪:-(14 18 26 47 48 62 74 76 98 99)

直接插入排序

void insertsort(rectype r,int n)  //對r[0...n-1]進行排序

while(j >= 0&&r[j].key > tmp.key);

r[j+1]=tmp; //在j+1處插入}}

}

直接插入演算法的優化

希爾排序具體的做法結合上述排序,我們可以很清楚的看出來,先取乙個小於n的整數d1作為第乙個增量,把序列分為d1個組,即將所有距離為d1倍數序號的記錄放在同乙個組中,在各組內進行直接插入排序,然後去第二個增量d2,d2小於d1,重複上述分組和排序工具,依次類推,直至所取的增量di=1,即所有記錄放在同一組進行直接插入排序為止。

void bininsertsort(rectype r,int n)

for(j=i-1;j>=high+1;j--)

r[j+1] = r[j];

r[high+1] = tmp;}}

}

交換排序的基本思想是,比較兩個記錄鍵值的大小,如果這兩個記錄鍵值的大小出現逆序,則交換這兩個記錄,這樣將鍵值較小的記錄向序列前部移動,鍵值較大的記錄向序列後部移動。首先我們來看交換排序中的第一種排序—氣泡排序,首先將第乙個記錄的鍵值和第二個鍵值進行比較,若為逆序,即r1.key大於r2.key,則將這兩個記錄交換,然後繼續比較第二個和第三個記錄的鍵值,依此類推,直到完成第n-1個記錄和第n個記錄的鍵值比較交換為止,上述過程稱為第一趟起泡,其結果使鍵值最大的記錄移到了第n個位置上,然後再進行第二趟起泡,即對前n-1個記錄進行同樣的操作,其結果是次大鍵值的記錄安置在第n-1個位置上,重複上面的過程,當在一趟起泡過程中沒有進行記錄交換的操作時,整個排序過程終止,我們來看下面的一張圖:

latex數學公式uml序列圖和流程圖離線寫部落格匯入匯出markdown檔案豐富的快捷鍵markdown和擴充套件markdown簡潔的語法

**塊高亮latex數學公式uml序列圖和流程圖離線寫部落格匯入匯出markdown檔案豐富的快捷鍵

markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。 —— [ 維基百科 ]

使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細語法參考幫助?。

本編輯器支援markdown extra,  擴充套件了很多好用的功能。具體請參考github.

markdown extra**語法:

專案**

computer

$1600

phone

$12pipe$1

可以使用冒號來定義對齊方式:

專案**

數量computer

1600 元

5phone

12 元

12pipe

1 元234

markdown extra定義列表語法:

專案1

專案2定義 a

定義 b

專案3定義 c

定義 d

定義d內容

**塊語法遵循標準markdown**,例如:

typedef

int keytype; //int 關鍵字型別

typedef

structrectype; //排序元素型別

生成乙個腳注1.

[toc]來生成目錄:

插入排序

交換排序

快捷鍵markdown及擴充套件

離線寫部落格

瀏覽器相容

使用mathjax渲染latex 數學公式,詳見math.stackexchange.com. x

=−b±

b2−4

ac−−

−−−−

−√2a

更多latex語法請參考 這兒.

可以渲染序列圖:

或者流程圖:

即使使用者在沒有網路的情況下,也可以通過本編輯器離線寫部落格(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。markdown編輯器使用瀏覽器離線儲存將內容儲存在本地。

使用者寫部落格的過程中,內容實時儲存在瀏覽器快取中,在使用者關閉瀏覽器或者其它異常情況下,內容不會丟失。使用者再次開啟瀏覽器時,會顯示上次使用者正在編輯的沒有發表的內容。

部落格發表後,本地快取將被刪除。 

使用者可以選擇 把正在寫的部落格儲存到伺服器草稿箱,即使換瀏覽器或者清除快取,內容也不會丟失。

注意:雖然瀏覽器儲存大部分時候都比較可靠,但為了您的資料安全,在聯網後,請務必及時發表或者儲存到伺服器草稿箱

ie9以下不支援

ie9,10,11存在以下問題

不支援離線功能

ie9不支援檔案匯入匯出

ie10不支援拖拽檔案匯入

zhi這裡是腳注的 內容. ↩

一些基本演算法

1.最大奇數約數int fun int x return x int main 2 找出第二大的數,要求用for遍歷一遍const int minnum 0x80000000 int find 2 k int arr,int n else if arr i sec return sec void m...

演算法 一些線性排序演算法

一 計數排序 使用這個演算法有乙個前提,待排序的陣列a,其所有的元素分布在區間 0,k 該演算法的時間複雜度為o n k 當k o n 時,執行時間為o n 所以當k比較小的時候適合採用這個演算法 下面給出這個演算法實現的 include using namespace std void count...

一些重要的排序演算法

void pigeonholesort byte array,intlength int i,k,j 0 for i 0 i length i b array i for i 0 i 256 i for k 0 k b i k array j i 多一次遍歷的計數排序,排序位元組串的話速度約是鴿巢排...