排序入門練習題2 從大到小排序 題解

2022-08-19 22:30:13 字數 921 閱讀 4337

題目出處:《資訊學奧賽一本通》例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,然後兩個形參取名為ab,他們和型別要和待排序的陣列的資料型別一致。

比如,我們實現從大到小排序的比較函式如下:

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...