c++几种常见的排序
include
using namespace std;“`
//1.冒泡排序思想:每次相邻两两比较,值大的向后移动
define N 10
void main()
{
int i = 0,j = 0;
int arr[N] = {2,4,3,5,2,45,5,56,67,7};
for(i = 0;i < N -1;i++) //每循环一次,一个最大值沉底
{
for(j = 0;j < N - 1 - i;j++) //沉底的次数决定冒到哪里
{
if(arr[j] > arr[j+1])
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(i = 0; i < N;i++) //输出值
{
cout<<arr[i]<<" ";
}
cout<<endl;
}
//2.插入排序,可以理解为读一个插一个,便于查找
define N 10
void main()
{
int arr[N] = {2,4,33,5,1,9,5,8,7,6};
int i = 0,j;
for(i = 1;i < N;i++) //只有一个不需要插入
{
int temp = arr[i];
j=i;
while(j > 0 && arr[j-1] > temp)
{
arr[j] = arr[j-1]; //向后移动
j–;
}
arr[j] = temp;
}
for(i = 0;i < N;i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
}
//3.桶排序 从小到大输出,适合数据较集中,差距较小
define Max 100
void main()
{
int a[Max+1];
int i,j,t;
for(i=0;i