经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
排序算法C语言实现——插入排序(优于冒泡)
来源:cnblogs  作者:Jo_ZSM  时间:2018/10/16 9:17:20  对本文有异议
为什么插入排序要优于冒泡?
  插入排序在于向已排序序列中插入新元素,主要的动作是移动元素,涉及1次赋值,即data[j] = data[j-1];
  而冒泡排序在于相邻元素交换位置,涉及3条赋值,即iTmp = data[j+1];data[j+1] = data[j];data[j] = iTmp;
  事实上插入的元素移动次数,与冒泡的元素交换次数是相同的,都等于待排序序列的逆序度。
  而冒泡比插入多了2次元素赋值。所以插入要比冒泡快。
 
冒泡排序代码见:https://www.cnblogs.com/JoZSM/p/9768735.html
插入排序代码如下:
/*插入*/
/*
原理:
  每次从待排序序列中选取第1个元素,插入到已排序序列中。
*/
/*O(n^2)
*/
void InsertSort(int* data, size_t len)
{
    size_t i=0,j=0;
    int iTemp=0;
    if(NULL == data)
    {
        /*throw("Invalid Parameter");*/
        return;
    }
    for(i=1; i<len; ++i)
    {
        iTemp = data[i];
        for(j=i; j>0; --j)
        {
            if(data[j-1] > iTemp)
            {
                data[j] = data[j-1];
            }
            else
            {
                break;
            }
        }
        data[j] = iTemp;
    }
}
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号