需先 #include <algorithm>
需先 #include <algorithm>
需先 #include <algorithm>
很重要所以要講三次。
用法1. 整體排序(小到大)
sort( 陣列名, 陣列名 + 陣列長度 );
int array[8] = {2 , 1, -1 , 0 , 6 , -5, 8 , -4};
sort(array, array + 8); // 排序
原先陣列:array[8] = {2, 1, -1, 0, 6, -5, 8, -4};
執行後陣列:array[8] = {-5, -4, -1, 0, 1, 2, 6, 8};
用法2. 部分排序
sort(陣列名, 陣列名 + (從前方數來須排列的數量));
int array[8] = {2, 1, -1, 0, 6, -5, 8, -4};
sort(array, array + 4); // 排序前面四位
原先陣列:array[8] = {2, 1, -1, 0, 6, -5, 8, -4};
執行後陣列:array[8] = {-1, 0, 1, 2, 6, -5, 8, -4};
用法3. 整體排序(大到小)
sort(陣列名, 陣列名 + 陣列長度, greater<int>());
原先陣列:array[8] = {2, 1, -1, 0, 6, -5, 8, -4};
執行後陣列:array[8] = {8, 6, 2, 1, 0, -1, -4, -5};
完整程式碼:
#include <iostream> #include <algorithm> using namespace std; void displayArray(int array[]); int main() { int arr[5] = {1, 5, 0, -3, 10}; displayArray(arr); // 陣列 arr 內容 1 5 0 -3 10
sort(arr, arr + 3); // 將 arr 部分排序 displayArray(arr); // 陣列 arr 內容 0 1 5 -3 10
sort(arr, arr + 5); // 將 arr 由小排到大 displayArray(arr); // 陣列 arr 內容 -3 0 1 5 10 sort(arr, arr + 5, greater<int>()); // 將 arr 由大排到小 displayArray(arr); // 陣列 arr 內容 10 5 1 0 -3 return 0; } void displayArray(int array[]) { // 顯示陣列 for (int i = 0; i < 5; i++) cout << array[i] << " "; cout << endl; }
沒有留言:
張貼留言