結構體的排序

2021-08-25 08:39:43 字數 475 閱讀 6883

對於排序的方法,我們知道很多種。但實際應用中,最麻煩的不是排序本身,因為幾乎所有語言都提供了排序的函式。而麻煩的是不經需要排序,還需要把一些附帶的資料的位置也跟著重新排列。

比如我們有很多學生的資料。每個學生是乙個物件,然後這些物件按一定順序放在乙個陣列裡面。我們一會兒想按照學生成績來排列這些物件,一會兒想按照學生身高來排列。那麼有些什麼思路來實現這類操作呢:

把要比較的量單獨組成乙個陣列。對這個陣列排序,但要求排序的函式能夠提供排序後的下表索引對應。也就是排序前後下標的對應。然後我們根據這個對應來重新排列所有物件。如果排序函式不能提供下標對應,可以排序後,進行一遍搜尋,按照值把對應關係簡歷起來。

如果使用的語言提供了sort函式,並且可以把自定義的比較兩個元素大小的函式傳入給sort。這樣我們可以只用物件的某一些成員來比較,但最終把整個物件都排序了。

data.sort(function (left, right) )

結構體及結構體排序

1 定義的方法struct node 用strut定義乙個結構體,node是結構體的名字,可以自己瞎取。p 1000 這樣你就定義了乙個神奇的陣列!沒錯,它就是node型陣列!上面的 還在結構體的末尾定義了乙個該型的陣列,其實這個陣列不一定要有,而且也可以在主函式中定義,但是感覺上用的比較多,而且這...

結構體排序

description excel可以對一組紀錄按任意指定列排序。現請你編寫程式實現類似功能。input 測試輸入包含若干測試用例。每個測試用例的第1行包含兩個整數 n 100000 和 c,其中 n 是紀錄的條數,c 是指定排序的列號。以下有 n 行,每行包含一條學生紀錄。每條學生紀錄由學號 6位...

結構體排序

貪心演算法中不想交區間問題 題目 解題思路 定義兩個變數,乙個記為結束時間,乙個記為區間數。將結束時間排序,若相同,就將開始時間從大到小排序 若不同,就將結束時間按從小到大排序。這樣第乙個區間是確定的,再比較下乙個區間的開始時間與第乙個區間結束時間的大小,大於則加一。再將結束時間改變即可,繼續迴圈。...