掌握好常用的排序算法,在实际的项目开发中可以节省很多的时间。每一种排序算法在执行的效率上是存在差别的,这些微小的时间差,也许在平常的联系当中感觉不到,但是涉及到数据量比较大或者是在资源比较紧张的系统中就显得尤其的重要,比如嵌入式系统。下面简要介绍三种常用的排序算法以及他们的执行效率的比较。
冒泡排序:
思路:将相邻的两个数比较,将较小的数调到前头;有n个数就要进行n-1趟比较,第一次比较中要进行n-1次两两比较,在第j趟比较中,要进行n-j次两两比较。
实现代码:
void BublleSort (int arr [], int count)
{
int i, j, temp;
for(j=0; j<count-1; j ) /* 冒泡法要排序n-1次*/
for(i=0; i<count-j-1; i )/* 值比较大的元素沉下去后,只把剩下的元素中的最大值再沉下去就可以啦 */
{
if(arr[i]>arr[i 1])/* 把值比较大的元素沉到底 */
{
temp=arr[i 1];
arr[i 1]=arr[i];
arr[i]=temp;
}
}
}
插入排序: