码迷,mamicode.com
首页 > 编程语言 > 详细

几种排序算法

时间:2015-06-11 16:07:00      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

1. 冒泡排序:比较前后两个相邻的元素,如果大于则进行交换,这样每次遍历一篇数组后,最大的一个数据就沉到了数组的N-1位置上。

  两种改进:a. 如果当前遍历,没有发生交换,则已经有序;b. 记录最后发生数据交换的位置i,这个位置之后的数据显然已经有序,则下一次遍历只需要对i之前的数据冒泡即可。

void BubbleSort3(int a[], int n)
{
    int j, k;
    int flag;
    
    flag = n;
    while (flag > 0)
    {
        k = flag;
        flag = 0;
        for (j = 1; j < k; j++)
            if (a[j - 1] > a[j])
            {
                Swap(a[j - 1], a[j]);
                flag = j;
            }
    }
}

冒泡排序的效率较低,数据规模较小时,可以使用。

2. 直接插入排序是将数据插入到已经排好序的数组中,直接选择排序是从后面未排序的数组中选择一个最小的,append到前面已经排序的后面。

 

http://blog.csdn.net/morewindows/article/details/6665714

 

几种排序算法

标签:

原文地址:http://www.cnblogs.com/lbingkuai/p/4569031.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!