《演算法筆記》學習筆記

2021-09-12 17:32:24 字數 1529 閱讀 6186

排序是基礎演算法之一,屬於常見題型。由於考試中大部分只需要得到排序的最終結果,而不需要去寫排序的完整過程,因此推薦直接使用c語言中的庫函式qsort或者c++中的sort函式進行排序。

排序題型的常用解題步驟

相關結構體的定義

對排序題,一定會在題目中給出個體的許多資訊,這些資訊在排序過程中一般都會用到,所以常常將他們存至乙個結構體當中,然後用結構體陣列來表示多個個體。

cmp函式的編寫

使用sort進行排序時,需要提供cmp函式實現排序規則。

排名實現

很多排序題都會要求在排序之後計算出每個個體的排名,並且規則一般是:分數不同的排名不同,分數相同的排名相同但占用乙個排位。例如:有5個學生的分數分別為90、88、88、88、86,那麼這5個學生的排名分別是1、2、2、2、5。對於這種要求,一般都需要在結構體型別定義時就把排名這一項加到結構體中。於是在陣列排序完成後就有下面兩種方法來實現排名的計算。

①先將陣列第乙個個體的排名記為1,然後遍歷剩餘個體;如果當前個體的分數等於上乙個個體的分數,那麼當前個體的排名等於上乙個個體的排名;否則,當前個體的排名等於陣列下標加1.

②有時題目中不一定需要真的把排名記錄下來,而是直接輸出,那麼則可以:令int型變數r初值為1,然後遍歷所有個體:如果當前個體不是第乙個個體且當前個體的分數不等於上乙個個體的分數,那麼令r等於陣列下標加1,這時r就是當前個體的排名,直接輸出即可。

《演算法筆記》學習筆記

雜湊的定義與整數雜湊 雜湊 將元素通過乙個函式轉換為整數,使得該整數可以盡量唯一地代表這個元素。其中把這個轉換函式稱為雜湊函式h,也就是說,如果元素在轉換前為key,那麼轉換後就是乙個整數h key 常用的雜湊函式有 直接定址法 平方取中法 除留餘數法。直接定址法 指恒等變換 即h key key,...

演算法筆記學習筆記02

2.5 陣列 問題 a 習題6 4 有序插入 includeint main for i 0 i 10 i printf d n a i 問題 b 習題6 5 陣列元素逆置 includeint main 問題 c 習題6 6 楊輝三角 includeint main if n 2 return 0...

演算法筆記學習筆記03

2.6 函式 問題 a 習題7 5 字串逆序存放 include includevoid change char a,char b b len 0 int main 問題 b 習題7 7 複製字串中的母音字母 include includevoid select char a,char b b j ...