題目出處:《資訊學奧賽一本通》例2.1
題目描述
輸入 \(n\) 個數,將 \(n\) 個數按從大到小的順序輸出(\(n \le 10000\))。
輸入格式
輸入的第一行包含乙個整數 \(n \le 10000\) ,用於表示元素個數。
接下來一行包含 \(n\) 個int範圍內的整數。
輸出格式
輸出佔一行,用於表示 \(n\) 個整數從小到大排的結果,兩兩之間以乙個空格分隔。
樣例輸入
8
3 2 4 5 1 8 6 7
樣例輸出8 7 6 5 4 3 2 1
題目分析
這道題目其實和前乙個「排序」是一樣的處理,只不過將之前的比較從 \(\lt\) 改成 \(\gt\) 就可以了。
不過這裡講這道題目主要是為了練習一下比較函式,
老師我一般將比較函式取名為cmp
,然後兩個形參取名為a
和b
,他們和型別要和待排序的陣列的資料型別一致。
比如,我們實現從大到小排序的比較函式如下:
bool cmp(int a, int b)
這個函式能保證穿進去的兩個引數在滿足 \(a \lt b\) 時返回true
,否則返回false
。
然後我們就可以將cmp
作為第三個引數穿進去給sort
了。
完整的實現**如下:
#include using namespace std;
int n, a[10001];
bool cmp(int a, int b)
int main()
arraylist從大到小排序 快速入門堆排序
堆排序是一種原地 時間複雜度 首先堆是一種樹,一種滿足以下特質的樹結構 接下來看看同一組資料的不同堆的形態 對於乙個adt,我們需要知道它有哪些操作方法 以及資料儲存的方式。儲存乙個完全二叉樹,最適合使用陣列,因為它相比鍊錶不需要儲存左 右子樹的指標,更加節省記憶體空間,通過陣列索引即可以隨機訪問到...
排序入門練習題8 整數奇偶排序 題解
題目出處 資訊學奧賽一本通 第二章上機練習6,略有改編 題目描述 告訴你包含 n 個數的陣列 a 你需要把他們按照 奇數排前面,偶數排後面 奇數從從小到大排,偶數從大到小排 的順序輸出。輸入格式 輸入的第一行包含乙個整數 n 1 le n le 1000 輸入的第二行包含 n 個整數 a 1,a 2...
記錄冒泡演算法,從大到小排序(C語言)
學了些c語言,記錄下學習過程,通過乙個常見的面試題來複習下c語言的使用 氣泡排序 上 輸入 排序中.輸出k 運算次數 include define n 5 void swap int fst,int scd 交換兩個數的函式,在不引入第三個變數的情況下實現功能 void swap int a,int...