如果对你有所帮助,请给个“小红花”~~
#include<iostream>
#include<string.h>
#include<algorithm>//sort函数头文件
using namespace std;
//以下算法皆以从小到大排序
int mp(int *p)//冒泡排序,最常用的较为稳定的排序算法
{
int temp;//临时变量用来交换两个数的位置
for(int i=0;i<10;i++)//控制到几轮冒泡
for(int j=0;j<10-i-1;j++)//控制从第几个数开始排序
{
if(p[j]>p[j+1])//交换位置,完成起泡
{
temp=p[j+1];
p[j+1]=p[j];
p[j]=temp;
}
}
for(int i=0;i<10;i++)
cout<<p[i]<<" ";
cout<<endl;
return 0;
}
int sort1(int *p)//c++自带库函数sort排序,在没有规定的时候,此算法效率最高,特别是数特别多的时候
{
sort(p,p+10);
for(int i=0;i<10;i++)
cout<<p[i]<<" ";
cout<<endl;
return 0;
}
int qsort(int *p,int start,int end) //快速排序
{
int i=start,j=end;//临时变量存当前start和end所处的位置
int base=p[0];//设置一个基准数
if(start<end)
{
while(i<j)
{
while(i<j&&p[j]>=base)// 从右向左找第一个小于x的数
j--;
if(i<j)
p[i++]=p[j];
while(i<j&&p[i]<base)// 从左向右找第一个大于等于x的数
i++;
if(i<j)
p[j--]=p[i];
}
p[i]=base;
qsort(p,start,i-1);//递归进行排序
qsort(p,i+1,end);
}
}
int main()
{
int p[10]={
1,25,13,68,384,27,39,54,18,222};
cout<<"冒泡排序结果:"<<endl;
mp(p);
cout<<"c++库函数排序结果:"<<endl;
sort1(p);
cout<<"快排排序结果:"<<endl;
qsort(p,0,0);
for(int i=0;i<10;i++)
cout<<p[i]<<" ";
}
``