個人 排序練習

2022-03-10 11:13:03 字數 1656 閱讀 7158

插入排序:

#include#include

using

namespace

std;

void output(int a, int

n) cout

<}int

main()

for(int i = 0; i < n; i++)

a[j+1] =temp;

output(a, n); }

return0;

}

插入排序,幻想成是你在抓撲克牌的時候。以i為分割線,i之前的撲克牌都是已經拍好順序的了。

所以你需要在i進行插入的時候,和它前面的乙個個比較,若前面的要大於它,就覆蓋,直到找到乙個小於它的數j,就放在這個數的後面。

插入排序可以高速整理順序很整齊的資料。

氣泡排序

#include#include

using

namespace

std;

void output(int a, int

n) cout

<}int

main()

for(int i = 0; i < n; i++)

} }output(a, n);

cout

}

從高處開始,往底層兩個兩個的判斷。就好像泡泡一樣把小的往前面送了。一趟完成後,之前未排序部分的第乙個肯定是剩下數里最小的。

選擇排序

#include#include

using

namespace

std;

void output(int a, int

n) cout

<}int

main()

for(int i = 0; i < n; i++)

} if(index !=i)

} output(a, n);

cout

}

就是一趟趟地走,每次選擇那個最小/大的。

選擇排序不一定是一種穩定的演算法。如果最小的那個數字和重複大數字交換排序後,就會出現位置變換了。

希爾排序

#include#include

#include

using

namespace

std;

void output(int a, intn)}

void insertion(int a, int n, int g, int ×)

a[j+g] =temp; }}

intmain()

vector

gs;for(int h=1

;;)

for(int i = gs.size()-1; i >= 0; i--)

cout

for(int i = gs.size()-1; i >= 0; i--)

cout

output(a, n);

return0;

}

希爾排序是加工過後的插入排序。

是按間隔來分別進行插入排序。這個間隔的演算法是按照那個複雜度來的吧,這個題的要求是o(n1.25),所以題目用了gn+1=3gn+1;

個人的MATLAB練習

編寫m函式str2cod.m用來實現字串的編碼過程 採用ascii碼的方式將字元變成二進位製碼,其中乙個位元組 8位元 代表乙個字元。將自己的姓名的拼音字母轉換成二進位製碼流。繪出二進位製碼流的圖形,並在圖形上標出二進位製碼。xm input 請輸入 s switch isempty xm case...

html個人簡單練習

這段時間學習了html基礎教程,與書籍相結合,但是實踐的較少。試著用之前學的做乙個簡單的網頁。今天主要完成了首頁頁面製作 涉及到導航 鏈結 對映 塊級操作 布局 應用音訊 表單 大約效果就是這樣 剛開始不會調整尺寸,導致會有左右方向的滾動條。網上搜了蒐用可以使頁面居中。就對導航和標題欄進行了居中處理...

氣泡排序練習

using system using system.collections.generic using system.linq using system.text return list class program double s sort p new sort s p.paixu a for i...