c++中sort函式的使用與快速排序
阿新 • • 發佈:2021-02-03
快速排序:
快速排序是排序演算法中最常用的演算法,其時間複雜度為O(nlogn)
程式碼:
#include<iostream>
using namespace std;
int a[101],n;
void quicksort(int left,int right){
int temp,t,i,j;
if(left>right)
return;
temp=a[left];
i=left;
j=right;
while(i!=j)
{
while(i<j&&a[j]>=temp)
j--;
while(i<j&&a[i]<=temp)
i++;
t=a[i];
a[i]=a[j];
a[j]=t;
}
a[left]=a[i];
a[i]=temp;
quicksort(left,i-1);
quicksort(i+1,right);
return;
}
int main(){
cout<<"請輸入要排序的數字個數:"<<endl;
cin>>n;
cout<<"請依次輸入"<<n<< "個數:"<<endl;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
quicksort(1,n);
cout<<"數字排序後為:"<<endl;
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
}
執行結果:
c++中sort函式使用
1.sort函式包含在標頭檔案為#include的c++標準庫中,呼叫標準庫裡的排序方法可以實現對資料的排序,但是sort函式是如何實現的,我們不用考慮!
2.sort函式的模板有三個引數:
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
(1)第一個引數first:是要排序的陣列的起始地址。
(2)第二個引數last:是結束的地址(最後一個數據的後一個數據的地址)
(3)第三個引數comp是排序的方法:可以是從升序也可是降序。如果第三個引數不寫,則預設的排序方法是從小到大排序。
3.例項
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[]={45,12,34,77,90,11,2,4,5,55};
sort(a,a+10);
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
}
執行結果: