sort()函數、C++

Sort()函數是c++一種排序方法之一,它使用的排序方法是類似于快排的方法,時間復雜度為n*log2(n)

(1)Sort函數包含在頭文件為#include<algorithm>的c++標準庫中。

II)Sort函數有三個參數:

1)第一個是要排序的數組的起始地址。

2)第二個是結束的地址(最后一位要排序的地址)

3)第三個參數是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個參數,此時默認的排序方法是從小到大排序。

Sort函數使用模板: Sort(start,end,,排序方法)

例一:sort函數沒有第三個參數,實現的是從小到大
#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;
}

例二
通過上面的例子,會產生疑問:要實現從大到小的排序腫么辦?
這就如前文所說需要在sort()函數里的第三個參數里做文章了,告訴程序我要從大到小排序!
需要加入一個比較函數 complare(),此函數的實現過程是這樣的
bool complare(int a,int b)
{
return a>b;
}
這就是告訴程序要實現從大到小的排序的方法!
#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函數傳入參數了,//這是規則
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}

例三:
通過上面例一、二的方法雖然實現了從大到小和從大到小的排序,這樣做還是有點麻煩,因為還需要自己編寫告訴程序進行何種排序的函數,c++標準庫強大的功能完全可以解決這種麻煩。
Sortt函數的第三個參數可以用這樣的語句告訴程序你所采用的排序原則
less<數據類型>()//從小到大排序
greater<數據類型>()//從大到小排序
結合本例子,這樣的就可以完成你想要的任何一種排序原則了

#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函數還可以實現對字符的排序,排序方法大同小異,下面就把程序范例展示一下
#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;
}

轉載于:https://www.cnblogs.com/dourcer/p/7986850.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453959.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453959.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453959.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python waitkey_python中VideoCapture(),read(),waitKey()的使用

有以下程序import cv2cap cv2.VideoCapture(0)while cap.isOpened():ret,frame cap.read()cv2.imshow(frame,frame)c cv2.waitKey(1)if c 27:breakcap.release()cv2.destroyAllWindows()說明&#xff1a;程序段里&#xff0c;1、cv2.VideoCapture()函數&#xff1a;cap cv…

深度學習案例之 驗證碼識別

本項目介紹利用深度學習技術&#xff08;tensorflow&#xff09;&#xff0c;來識別驗證碼&#xff08;4位驗證碼&#xff0c;具體的驗證碼的長度可以自己生成&#xff0c;可以在自己進行訓練&#xff09; 程序分為四個部分 1、生成驗證碼的程序&#xff0c;可生成數字字母大…

windows下使用pthread庫

最近在看《C多核高級編程》這本書&#xff0c;收集了些有用的東西&#xff0c;方便在windows下使用POSIX標準進行Pthread開發&#xff0c;有利于跨平臺。 -------------------------------------------------- windows下使用pthread庫時間:2010-01-27 07:41來源:羅索工作室 作…

day 05 多行輸出與多行注釋、字符串的格式化輸出、預設創建者和日期

msg"hello1 hello2 hello3 " print(msg) 顯示結果為&#xff1a; # " "只能進行單行的字符串 多行字符串用 ,前面設置變量&#xff0c;可以用 表示多行 msghello1 hello2 hello3print(msg) 顯示結果為&#xff1a; 當然如果沒有設置變量&#xff0c;…

python數值計算guess_【python】猜數字game,旨在提高初學者對Python循環結構的使用...

import random #引入生成隨機數的模塊需求&#xff1a;程序設定生成 1-20 之間的一個隨機數&#xff0c;讓用戶猜日期&#xff1a;2019-10-21作者&#xff1a;xiaoxiaohui目的&#xff1a;猜數字game&#xff0c;旨在提高初學者對Python 變量類型以及循環結構的使用。secretNu…

調試九法-總體規則

調試規則規則1 理解系統規則2 制造失敗規則3 不要想&#xff0c;而要看規則4 分而治之規則5 一次只改一個地方規則6 保持審計跟蹤規則7 檢查插頭規則8 獲得全新觀點規則9 如果你不修復bug&#xff0c;它將依然存在轉載于:https://www.cnblogs.com/uetucci/p/7987805.html

深度學習之循環神經網絡(Recurrent Neural Network,RNN)

遞歸神經網絡和循環神經網絡 循環神經網絡&#xff08;recurrent neural network&#xff09;&#xff1a;時間上的展開&#xff0c;處理的是序列結構的信息&#xff0c;是有環圖遞歸神經網絡&#xff08;recursive neural network&#xff09;&#xff1a;空間上的展開&#…

從北京回來的年輕人,我該告訴你點什么?

前言 就在上周末&#xff0c;我與公眾號里的一個當地粉絲見面了&#xff0c;一起吃了頓飯&#xff0c;順便聊了聊。先來簡單交代下我們這位粉絲&#xff08;以下簡稱小L&#xff09;的經歷以及訴求。 小L之前在北京八維研修學院培訓的PHP&#xff0c;因為家庭原因&#xff0c;沒…

Linphone編譯【轉載】

Linphone依賴太多的庫&#xff0c;以致于稍有疏失&#xff0c;就會在編譯&#xff0c;運行出錯&#xff0c;都是由于依賴庫安裝的問題。 1 基礎知識 1.1 動態庫的連接 很多人安裝完庫后&#xff0c;configure依然報告這個庫沒有。這是對linux動態庫知識匱乏造成&#xff0c;也就…

python助教的面試題_python面試題----持續更新中

為什么學習Python&#xff1f;通過什么途徑學習的Python&#xff1f;Python和Java、PHP、C、C#、C等其他語言的對比&#xff1f;python 解釋型語言&#xff0c;語法簡潔優雅。C C 編譯型語言&#xff0c;先編譯后運行&#xff0c;偏底層。簡述解釋型和編譯型編程語言&#xff1…

python3模塊: requests

Python標準庫中提供了&#xff1a;urllib等模塊以供Http請求&#xff0c;但是&#xff0c;它的 API 太渣了。它是為另一個時代、另一個互聯網所創建的。它需要巨量的工作&#xff0c;甚至包括各種方法覆蓋&#xff0c;來完成最簡單的任務。 發送GET請求 import urllib.requestf…

SUSE12系統安裝及LVM設置詳解

SUSE12自定義安裝跟以往版本差不多&#xff0c;只是調整了一些功能安裝順序&#xff0c;例如網絡設置放到很靠前&#xff0c;SUSE11的時候幾乎是在后半部分&#xff0c;自定義分區也調整到網絡設置之后&#xff0c;入口設置也隱秘&#xff0c;如果是熟悉suse11安裝&#xff0c;…

在windows下編譯FFMPEG-最新2009版本

轉】在windows下編譯FFMPEG-最新2009版本2010-11-17 18:50大家可以看到&#xff0c;此篇之前有很多個版本的“在windows下編譯FFMPEG”&#xff0c;那些都是我在網上搜羅來的&#xff0c;在看了無數篇那些過期的、有借鑒價值的文章后&#xff0c;我終于成功在windows下編譯出了…

CentOS7 安裝nginx

1、官網下載安裝包 官網&#xff1a;http://nginx.org/en/download.html 選擇適合Linux的版本&#xff0c;這里選擇最新的版本&#xff0c;下載到本地后上傳到服務器或者centos下直接wget命令下載。 切換到/usr/local目錄&#xff0c;下載軟件包 # cd /usr/local # wget htt…

dvwa如何打開_DVWA詳細 安裝

Wamp就是Windows Apache Mysql PHP集成安裝環境&#xff0c;即在window下的apache、php和mysql的服務器軟件。PHP擴展、Apache模塊&#xff0c;開啟/關閉鼠標點點就搞定&#xff0c;再也不用親自去修改配置文件了&#xff0c;WAMP它會去做。再也不用到處詢問php的安裝問題了&am…

CentOS7安裝OpenFire

下載openfire wget http://download.igniterealtime.org/openfire/openfire-3.9.3-1.i386.rpm安裝openfire yum install -y /home/openfire-3.9.3-1.i386.rpm安裝運行庫 yum install -y glibc.i686添加開啟啟動 chkconfig openfire on啟動openfire服務 systemctlstart openfire…

CentOS 安裝 php

大致步驟&#xff1a;下載–解壓–編譯–安裝–配置 php官網&#xff1a; https://www.php.net/releases/ php5.6連接地址 http://hk1.php.net/get/php-5.6.36.tar.gz/from/this/mirror http://hk2.php.net/get/php-5.6.36.tar.gz/from/this/mirror 1.安裝php 所依賴的軟件 yu…

怎么利用ffmpeg和AviSynth給在windows下面為flv文件加水印

之前一直在找怎么為flv文件加上自己的水印,ffmpeg和vhook是在linux下面支持.在windows下面不支持.所以我就選擇用ffmpeg和AviSynth為flv文件加水印.詳細步驟如下: 1 首先當然下載ffmpeg和AviSynth了.具體的地址自己google一下就能找到很多.這里就不再詳細介紹了. 一般情況ffm…

【Hibernate框架開發之九】Hibernate 性能優化筆記!(遍歷、一級/二級/查詢/緩存/樂觀悲觀鎖等優化算法)...

1. 循環分頁或者循環進行部分讀取處理數據的時候&#xff0c;使用 session.clear() ; 2. 對應1N&#xff08;N1&#xff09;問題使用如下解決方式&#xff1a; 1&#xff09;&#xff1a; 使用createCriteria進行查詢(join fetch) 2&#xff09;&#xff1a;HQL -> joi…

vscode中安裝webpack_VSCode下手動構建webpack項目(示例代碼)

1.執行npm install nrm -g&#xff0c;安裝nrm&#xff0c;此模塊主要用于切換npm鏡像源&#xff0c;簡化手動配置步驟2.執行 nrm ls&#xff0c;可以看到npm源地址列表&#xff0c;當前使用的是默認源&#xff0c;npm https://registry.npmjs.org/3.執行 nrm use taobao&#…