Board logo

標題: 自定排序 (一) [打印本頁]

作者: 鄭繼威    時間: 2024-1-17 19:14     標題: 自定排序 (一)

試運用 sort() 函式,搭配一個自定義的比較方法,對陣列做遞減排序。

這個自定義的比較方法格式為,一個回傳布林值並帶有兩個欄位的自定函式,將從目標陣列中依序抓取前後兩個欄位的成員做比較,因此型態必須與陣列一致。

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<algorithm>
  4. using namespace std;
  5. bool compare(int a, int b)
  6. {
  7.     return a>b;
  8. }
  9. int main()
  10. {
  11.     int n[10];      //宣告一個大小為10的空陣列
  12.     cout<<"請任意輸入10個整數:"<<endl;
  13.     for(int i=0; i<10; i++)
  14.         cin>>n[i];
  15.     cout<<"排序前:"<<endl;
  16.     for(int i: n)
  17.         cout<<i<<" ";
  18.     cout<<endl;
  19.     sort(n, n+10, compare);
  20.     cout<<"排序後(遞減):"<<endl;
  21.     for(int i: n)
  22.         cout<<i<<" ";
  23.     cout<<endl;
  24.     system("pause");
  25.     return 0;
  26. }
複製代碼

作者: 李宗儒    時間: 2024-1-22 18:15

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<ctime>
  4. #include<algorithm>
  5. using namespace std;

  6. bool jay(int t,int k)
  7. {

  8.     return t>k;

  9. }
  10. int main()
  11. {
  12. srand(time(NULL));
  13. int n[10];
  14.     for (int i=0;i<=9;i++)
  15.         {
  16.         n[i]=rand()%10;
  17.         cout<<n[i]<<" ";
  18.         }
  19.         cout<<endl;


  20.     sort(n,n+10,jay);
  21.     for (int i=0;i<=9;i++)
  22.     {
  23.         cout<<n[i]<<" ";
  24.     }
  25. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2