關於sort使用方法的討論(把陣列排成最小的數)

2021-10-08 06:07:34 字數 1625 閱讀 9981

上次提及sort的用法是在華為oj-奧運會排行榜c++

當中,重新定義operator<()函式之後,使用sort(ranks.begin(), ranks.end());便生效了

本文在此討論sort的用法,是因為發現同樣的方法在下面的這道題目上不好用了

大概是因為不是去簡單比較某個容器內的元素。

題目:

輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。

所以就定義了乙個比較函式,作為sort中的第三個引數sort(pstrarray, pstrarray + num, compare);,便能達到目的

#include

#include

#include

#include

using

namespace std;

bool

compare

(const string& strcp1,

const string& strcp2)

void

array2min

(int

* parray,

int num)

sort

(pstrarray, pstrarray + num, compare)

;for

(int i =

0; i < num;

++i)

cout << endl;

delete

pstrarray;

}int

main()

;array2min

(a,sizeof

(a)/

sizeof

(int))

;return0;

}

python方法:

alist =[3

,32,321

]def

bulid_min

(alist)

: s =

''for j in

range

(len

(alist)-1

,0,-

1):for i in

range

(j):

ifint

(str

(alist[i])+

str(alist[i +1]

))>

int(

str(alist[i +1]

)+str(alist[i]))

: alist[i]

, alist[i +1]

= alist[i +1]

, alist[i]

for i in alist:

s +=

str(i)

return s

print

(bulid_min(alist)

)

關於stringstream的用法總結

證明方法可

參考博文:

sort使用方法

linux對檔案進行排序操作,可以使用sort完成。語法如下 sort rtkn 檔案 o 輸出檔案 引數解釋 r 預設是公升序,加上 r則降序 t 預設分割符是製表符或空格,加上 t可以指定分隔符 k 如果檔案有多列,可以指定用哪一列進行排序 n 預設按字元進行排序,指定 n,可以按數值進行排序 ...

sort函式的使用方法

標頭檔案為 includesort函式包含在的c 標準庫中,呼叫標準庫里的排序方法可以實現對資料的排序。三個引數 void sort randomaccessiterator first,randomaccessiterator last,compare comp 第三個引數comp是排序的方法,如...

sort函式的正確使用方法

sort 函式是用來實現陣列排序的 var arr 0,5,6,4,3 var arr1 25,13,46,12 var arr2 100,523,123,448 如果按照以上的,陣列都是同位數的,sort就會正常的執行 如果var arr 5,100,36,12,6,5 他的執行完之後就會變成 1...