快速排序:
快速排序是排序算法中最常用的算法,其时间复杂度为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]<<" ";
}
运行结果: