常见的排序算法有几种
- 冒泡排序
- 冒泡排序,每次把相邻两项进行比较,如果前一项大于后一项,那么把这两项交换,进行n-1次,结果就是从小到大排列的.
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int a[8]= {3,2,5,1,4,7,6,0};
int n=8,i,j,t;
for(i=0; i<n-1; i++)
for(j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
puts("排序后结果:");
for(i=0; i<n; i++)
printf("%d ",a[i]);
return 0;
}
/* 排序后结果: 0 1 2 3 4 5 6 7 Process returned 0 (0x0) */
- 选择排序
- 选择排序,每次选一个最值,把他放到已有序的集合里,然后再从剩下的数中选取最值,依次循环n-1次
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int a[8]= {3,2,5,1,4,7,6,0};
int n=8,i,j,t,m;
for(i=0; i<n-1; i++)
{
t=i;
for(j=i+1; j<n; j++)
{
if(a[t]>a[j]) t=j;
}
m=a[i];
a[i]=a[t];
a[t]=m;
}
puts("排序后结果:");
for(i=0; i<n; i++)
printf("%d ",a[i]);
return 0;
}
/* 排序后结果: 0 1 2 3 4 5 6 7 Process returned 0 (0x0) */
- 插入排序
- 快速排序
- 归并排序
- 堆排序