用自建的函式給陣列排序

2021-07-25 04:12:18 字數 1227 閱讀 6428

目的:

不使用algorithm庫里的sort函式,自建函式給陣列排序,包括從大到小,或者從小到大

這裡用了設計了三個函式,乙個是只管把陣列從小到大排序,乙個是只管從大到小排序,第三個函式是增加乙個引數,可以用它來對陣列做兩種排序

#include #include using namespace std;

template void sortarraytobigger(type a, int size) //把函式從小到大排列

} }}template void sortarraytosmaller(type a, int size) //把函式從大到小排列

} }}template void sort(type a, int size, bool sequence) //函式排序,第三個引數用來判斷是從小到大,還是從大到小

}else

if (a[i] < a[i + 1]) //從大到小排序

} }}template //做成模板,用於各種型別的陣列。使用模板只要增加這一行,並改動下面相應的class型別即可

void printarray(type a, int size) //引數是陣列名和陣列的長度

int main()

;//用string陣列試驗

printarray(test, 5);

sortarraytobigger(test, 5); //用第乙個函式 從小到大排序

printarray(test, 5);

sortarraytosmaller(test, 5);//用第二個函式 從大到小排序

printarray(test, 5);

sort(test, 5, true); //用第三個函式,從小到大排序

printarray(test, 5);

sort(test, 5, false); //用第三個函式,從大到小排序

printarray(test, 5);

system("pause");

return exit_success;

}

程式設計收穫:

1. 如果不利用其它函式,對陣列自身做排序,可以用swap方法

2. 為了減少**重複,可以增加乙個函式引數,把幾個功能的函式合併成同乙個函式

執行結果:

利用內建lambda函式給dict排序

sort.py coding gbk 這個類用來演示如何對自定義物件進行排序 class sortobj a 0b def init self,a,b self.a a self.b b def printab self print self.a,self.b 演示對字串列表進行排序 samplel...

Matlab 用sort函式排序 二維陣列

在matlab中排序某個向量 一維 時,可以使用sort a 其中a為待排序的向量,如果僅是用來排序a,那麼直接使用sort a 即可,如果排序後還需要保留原來的索引可以用返回值,即 b,ind sort a 計算後,b是a排序後的向量,a保持不變,ind是b中每一項對應於a 中項的索引。排序是安公...

PHP陣列的排序函式

介紹 sort 按照字母或數字公升序對陣列中的元素進行排序,rsort作用則相反 char array b a d sort cars numbers array 3,5,1,22,11 sort numbers asort 根據值對關聯陣列進行公升序排序,arsort作用相反 age array ...