C 經典模板程式設計練習排序,又見排序

2021-09-14 05:36:29 字數 1813 閱讀 1933

總時間限制: 

1000ms

記憶體限制: 

65536kb

// 在此處補充你的**
描述

自己編寫乙個能對任何型別的陣列進行排序的mysort函式模版。只能寫乙個mysort模板,不能寫mysort函式!

#include using namespace std;

bool greater2(int n1,int n2)

bool greater1(int n1,int n2)

bool greater3(double d1,double d2)

template void mysort(

#define num 5

int main()

; mysort(an,an+num,greater1); //從小到大排序

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

cout << an[i] << ",";

mysort(an,an+num,greater2); //從大到小排序

cout << endl;

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

cout << an[i] << ",";

cout << endl;

double d[6] = ;

mysort(d+1,d+5,greater3); //將陣列從下標1到下標4從小到大排序

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

cout << d[i] << ",";

return 0;

}

輸入無輸出

4,8,10,11,123,

123,11,10,8,4,

1.4,1.2,1.8,3.1,3.2,2.1,

樣例輸入

樣例輸出

4,8,10,11,123,

123,11,10,8,4,

1.4,1.2,1.8,3.1,3.2,2.1,

**

guo wei

這裡使用乙個最簡單的氣泡排序實現

#include using namespace std;

bool greater2(int n1, int n2)

bool greater1(int n1, int n2)

bool greater3(double d1, double d2)

template void mysort(t1* start, t1* end, bool (*comp)(t2 x, t2 y))

}#define num 5

int main()

; mysort(an, an + num, greater1); //從小到大排序

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

cout << an[i] << ",";

mysort(an, an + num, greater2); //從大到小排序

cout << endl;

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

cout << an[i] << ",";

cout << endl;

double d[6] = ;

mysort(d + 1, d + 5, greater3); //將陣列從下標1到下標4從小到大排序

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

cout << d[i] << ",";

return 0;

}

c 程式設計練習 033 排序,又見排序

北大程式設計與演算法 三 測驗題彙總 2020春季 自己編寫乙個能對任何型別的陣列進行排序的mysort函式模版。只能寫乙個mysort模板,不能寫mysort函式!include using namespace std bool greater2 int n1,int n2 bool greate...

C 模板函式 007 排序,又見排序

描述 自己編寫乙個能對任何型別的陣列進行排序的mysort函式模版。只能寫乙個mysort模板,不能寫mysort函式!include using namespace std bool greater2 int n1,int n2 bool greater1 int n1,int n2 bool g...

經典拓撲排序模板

拓撲排序是圖論中一種典型的演算法。通過拓撲排序可以梳理圖的層次結構。像什麼工期完成類的圖論任務,就是典型的應用。第二個應用就是判斷圖中是否存在環路的問題。程式中建圖的方式是鄰接表形式,如下 vector graph n,vector 下面是拓撲排序的模板 vector graph n,vector ...