1. 程式人生 > 其它 >c++中sort函式的使用與快速排序

c++中sort函式的使用與快速排序

技術標籤:資料結構演算法c++快速排序

快速排序:
快速排序是排序演算法中最常用的演算法,其時間複雜度為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]<<" ";
} 

執行結果:
在這裡插入圖片描述