sort自定義排序

2021-10-24 13:04:53 字數 3088 閱讀 7284

參考:

例:大整數排序。

對n個長度最長可達到1000的數進行排序。

輸入第一行為乙個整數n,(1<=n<=100)。

接下來的n行每行有乙個數,數的長度範圍為1<=len<=1000。

每個數都是乙個正數,並且保證不包含字首零。

#include

#include

#include

#include

using

namespace std;

bool

cmp(string& s1, string& s2)

else

if(s1.

size()

== s2.

size()

&& s1 < s2)

return

false;}

//別人的寫法:

bool

cmp(

const string& s1,

const string& s2)

return s1 < s2;

//若長度相等按字串大小公升序排序

}int

main()

sort

(s.begin()

, s.

end(

),cmp)

;for

(auto

& x : s)

}}

輸入乙個四行五列的矩陣,找出每列最大的兩個數。按照樣例輸出的格式將每列最大的兩個數輸出,如果最大的兩個數中的乙個數在這一列中有多個相同的值,則行值取行值小的那乙個。

輸出時要保留原矩陣的行列順序,即在原矩陣中行值小的,在輸出矩陣中的行值依然小。

;//對每一列元素先按元素值排序,再把最大的兩個按下標排序

for(

int i =

0; i <5;

++i)

sort

(t, t +

4, cmp)

;sort

(t +

2, t +

4, cmp1)

; res[i]

= t[2]

.val;

res[i +5]

= t[3]

.val;

}for

(int i =

0; i <10;

++i)

}結構體排序

#include

#include

#include

#include

#include

using

namespace std;

struct employees

employees

(int id,string name,

int age):id

(id)

,name

(name)

,age

(age)};

bool

cmp(employees& e1,employees& e2)

else

if(e1.age==e2.age && e1.id

else

if(e1.age==e2.age && e1.id==e2.id && e1.name

else

return

false;}

intmain()

sort

(emp,emp+n,cmp)

;for

(int i=

0;i<

min(

3,n)

;++i)

}

之前學習的二維陣列的排序和字串的自定義排序:

lambda表示式

()()

前k個高頻詞

class

solution

vector rec;

for(

auto

&[key, value]

: cnt)

sort

(rec.

begin()

, rec.

end(),

[&](

const string& a,

const string& b)

->

bool);

rec.

erase

(rec.

begin()

+ k, rec.

end())

;return rec;}}

;

class

solution

auto cmp =

(const pair

int>

& a,

const pair

int>

& b)

; priority_queue

int>

, vector

int>>

,decltype

(cmp)

>

que(cmp)

;for

(auto

& it : cnt)

} vector

ret(k)

;for

(int i = k -

1; i >=

0; i--

)return ret;}}

;

sort自定義排序

1.sort介紹 用於c 中,對給定區間所有元素進行排序。使用的排序方法類似於快排的方法,時間複雜度為n log2 n 執行效率較高 標頭檔案 include algorithm 2.sort使用方法 sort函式有3個引數,sort first,last,cmp 其中,first是元素的起始位址,...

sort自定義型別排序

乙個很簡單的問題,不過也磨了我好一會,在些總結記錄。1.對於不用寫自定義資料結構的情況 static int cmp const pair x,const pair y if x.second y.second return x.second y.second else return x.first...

自定義對結構體排序(sort)

大家都知道,快速排序是不穩定的排序方法。如果對於陣列 現的任意a i a j iinput 本題目包含多組輸入,請處理到檔案結束。對於每組資料,第一行有乙個正整數n 0output 對於每組資料,如果演算法是正確並且穩定的,就在一行裡面輸出 right 如果演算法是正確的但不是穩定的,就在一行裡面輸...