国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++sort()函數(shù)的用法

2019-11-10 17:29:30
字體:
供稿:網(wǎng)友
近來看了c++標準庫這本書,學到了很多,就把這其中的一點C++sort()函數(shù)的用法寫下來和大家分享吧!(一)為什么要用c++標準庫里的排序函數(shù)Sort()函數(shù)是c++一種排序方法之一,學會了這種方法也打消我學習c++以來使用的冒泡排序和選擇排序所帶來的執(zhí)行效率不高的問題!因為它使用的排序方法是類似于快排的方法,時間復雜度為n*log2(n),執(zhí)行效率較高!(二)c++標準庫里的排序函數(shù)的使用方法I)Sort函數(shù)包含在頭文件為#include<algorithm>的c++標準庫中,調(diào)用標準庫里的排序方法可以不必知道其內(nèi)部是如何實現(xiàn)的,只要出現(xiàn)我們想要的結(jié)果即可!II)Sort函數(shù)有三個參數(shù):(1)第一個是要排序的數(shù)組的起始地址。(2)第二個是結(jié)束的地址(最后一位要排序的地址)(3)第三個參數(shù)是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個參數(shù),此時默認的排序方法是從小到大排序。Sort函數(shù)使用模板:Sort(start,end,,排序方法)下面就具體使用sort()函數(shù)結(jié)合對數(shù)組里的十個數(shù)進行排序做一個說明!例一:sort函數(shù)沒有第三個參數(shù),實現(xiàn)的是從小到大#include<iostream>#include<algorithm>using namespace std;int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout<<a[i]<<endl;sort(a,a+10); for(int i=0;i<10;i++) cout<<a[i]<<endl; return 0;}例二通過上面的例子,會產(chǎn)生疑問:要實現(xiàn)從大到小的排序腫么辦? 這就如前文所說需要在sort()函數(shù)里的第三個參數(shù)里做文章了,告訴程序我要從大到小排序!需要加入一個比較函數(shù) complare(),此函數(shù)的實現(xiàn)過程是這樣的bool complare(int a,int b){ return a>b;}這就是告訴程序要實現(xiàn)從大到小的排序的方法!#include<iostream>#include<algorithm>using namespace std;bool complare(int a,int b){ return a>b;}int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout<<a[i]<<endl; sort(a,a+10,complare);//在這里就不需要對complare函數(shù)傳入?yún)?shù)了,//這是規(guī)則 for(int i=0;i<10;i++) cout<<a[i]<<endl; return 0;}例三:通過上面例一、二的方法雖然實現(xiàn)了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程序進行何種排序的函數(shù),c++標準庫強大的功能完全可以解決這種麻煩。Sortt函數(shù)的第三個參數(shù)可以用這樣的語句告訴程序你所采用的排序原則less<數(shù)據(jù)類型>()//從小到大排序greater<數(shù)據(jù)類型>()//從大到小排序結(jié)合本例子,這樣的就可以完成你想要的任何一種排序原則了#include<iostream>#include<algorithm>using namespace std;int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout<<a[i]<<endl;sort(a,a+10,less<int>()); for(int i=0;i<10;i++) cout<<a[i]<<endl; return 0;}#include<iostream>#include<algorithm>using namespace std;int main(){ int a[10]={9,6,3,8,5,2,7,4,1,0}; for(int i=0;i<10;i++) cout<<a[i]<<endl; sort(a,a+10,greater<int>()); for(int i=0;i<10;i++) cout<<a[i]<<endl; return 0;}例四:利用sort函數(shù)還可以實現(xiàn)對字符的排序,排序方法大同小異,下面就把程序范例展示一下#include<iostream>#include<algorithm>using namespace std;int main(){ char a[11]="asdfghjklk"; for(int i=0;i<10;i++) cout<<a[i]<<endl; sort(a,a+10,greater<char>()); for(int i=0;i<10;i++) cout<<a[i]<<endl; return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 宁海县| 勐海县| 扬中市| 巴林右旗| 大化| 桐梓县| 东台市| 浪卡子县| 舒城县| 青岛市| 衡山县| 绥阳县| 通许县| 临桂县| 昆山市| 凉山| 荥经县| 台安县| 都匀市| 磐安县| 平遥县| 鹤峰县| 台东县| 边坝县| 铁力市| 治县。| 垫江县| 西畴县| 深泽县| 四平市| 左云县| 屯留县| 曲麻莱县| 高清| 芒康县| 兰西县| 灵宝市| 百色市| 竹溪县| 灵宝市| 临猗县|