FeiYan

网站导航

搜索

腾讯微博 新浪微博 FeelBLog 开源中国社区

直接插入排序算法(Insertion Sort)

2012-10-10 11:45:07     13个评论     2405次访问

节前总结了二分查找算法,节后开始将会细致的总结十多种排序算法并且用PHP程序实现,了解算法是一方面,还要能把算法灵活的融入到代码中。

在诸多排序算法中直接插入排序算法(Insertion Sort)是我唯一一个在各种面试前认认真真思考过的算法,插入排序顾名思义就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。如果数据本身比较有序,插入排序算法的效率还算可以,如果数据本身排列比较乱,那么插入排序的效率就不敢恭维了,最慢的情况是排列一个完全倒序的数组。

/**
 * 插入排序算法
 * 最好:O(n*n),最差:O(n),平均:O(n*n)
 * 左边有序序列(左边初始取1个)
 * 右边无序序列(依次插入左边)
 */
function insertionSort( $arr ) {
    $count = count($arr);
    for( $i=1; $i<$count; $i++ ){
        $temp = $arr[$i];
        for( $j=$i-1; $j>=0 && $arr[$j]>$temp; $j-- ){
            $arr[$j+1] = $arr[$j];
        }
        $arr[$j+1] = $temp;
    }
    return $arr;
}

老实说平时项目中可能用的到一般只有交换排序算法了(冒泡排序算法和快速排序算法),直接插入排序算法因为效率一般,所以下一篇和算法有关的文章将会是对直接插入排序算法的改进——希尔排序Shell Sort的介绍。

文章标签: 算法 

本文地址:直接插入排序算法(Insertion Sort)

相关文章

2012-09-29:二分查找(折半查找)算法

2014-05-06:PHP AES双向加密解密(128位)

13 Comments »

  1. 飞晏飞晏
    嗯,加好了。

    @天涯: 给我加个友链。

    2012-10-11 20:18:57   

  2. 天涯天涯
    给我加个友链。

    2012-10-11 18:06:25   

  3. 飞晏飞晏
    你见过这么挫的牛人么... 屌丝码农一枚而已。

    @天涯: soga...原来密码我木有猜到,哈哈。我就说么,这么大牛的人安全意识会这么差~// @飞晏: 我日,糗大了。我密码可不是跟用户名一样,是代码里面一个“||”写成了“&&”,后果你懂的,用户名对了就进去了,我晚上回去更新。非常以及十分的感谢!!// @天涯: 没什么,你密码和用户名一样。这个只是习惯问题。虽说用户名不是admin比较安全点,但是你密码也太……哈哈。// @飞晏: 靠,我发现确实dump了错误的用户名密码,但是我还是没想到怎么猜到我的密码的?求解?// @天涯: 无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 16:01:40   

  4. 天涯天涯
    soga...原来密码我木有猜到,哈哈。我就说么,这么大牛的人安全意识会这么差~

    @飞晏: 我日,糗大了。我密码可不是跟用户名一样,是代码里面一个“||”写成了“&&”,后果你懂的,用户名对了就进去了,我晚上回去更新。非常以及十分的感谢!!// @天涯: 没什么,你密码和用户名一样。这个只是习惯问题。虽说用户名不是admin比较安全点,但是你密码也太……哈哈。// @飞晏: 靠,我发现确实dump了错误的用户名密码,但是我还是没想到怎么猜到我的密码的?求解?// @天涯: 无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 15:58:36   

  5. 飞晏飞晏
    我日,糗大了。我密码可不是跟用户名一样,是代码里面一个“||”写成了“&&”,后果你懂的,用户名对了就进去了,我晚上回去更新。非常以及十分的感谢!!

    @天涯: 没什么,你密码和用户名一样。这个只是习惯问题。虽说用户名不是admin比较安全点,但是你密码也太……哈哈。// @飞晏: 靠,我发现确实dump了错误的用户名密码,但是我还是没想到怎么猜到我的密码的?求解?// @天涯: 无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 15:54:38   

  6. 天涯天涯
    没什么,你密码和用户名一样。这个只是习惯问题。虽说用户名不是admin比较安全点,但是你密码也太……哈哈。

    @飞晏: 靠,我发现确实dump了错误的用户名密码,但是我还是没想到怎么猜到我的密码的?求解?// @天涯: 无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 15:43:37   

  7. 飞晏飞晏
    靠,我发现确实dump了错误的用户名密码,但是我还是没想到怎么猜到我的密码的?求解?

    @天涯: 无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 15:41:26   

  8. 飞晏飞晏
    登陆页面我临时从别的地方扒过来的,不好意思见笑了。我得空马上改掉,非常感谢!话说,你能给我说下怎么发现的么?

    @天涯: 无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 15:39:14   

  9. 天涯天涯
    无意路过,说下,无意发现你后台登录貌似有输出什么。另外,密码太简单了。我猜到了。无意。罪过。

    2012-10-11 14:59:54   

  10. 飞晏飞晏
    你什么浏览器?你可以页面加载后稍等3秒看看会不会自动填充。

    @所谓刚子: 不知道 我不管浏览器可以 关掉浏览器 在打开的时候 就是空的了!// @飞晏: 你看你cookie,有个commentUser,只要你浏览器正常是会自动记录你的信息的。难道你的没有?// @所谓刚子: 这个评论没有自动填充功能 是相当的不爽啊。。每次都要手动输入 太麻烦!

    2012-10-10 22:12:38   

  11. 所谓刚子所谓刚子
    不知道 我不管浏览器可以 关掉浏览器 在打开的时候 就是空的了!

    @飞晏: 你看你cookie,有个commentUser,只要你浏览器正常是会自动记录你的信息的。难道你的没有?// @所谓刚子: 这个评论没有自动填充功能 是相当的不爽啊。。每次都要手动输入 太麻烦!

    2012-10-10 22:08:09   

  12. 飞晏飞晏
    你看你cookie,有个commentUser,只要你浏览器正常是会自动记录你的信息的。难道你的没有?

    @所谓刚子: 这个评论没有自动填充功能 是相当的不爽啊。。每次都要手动输入 太麻烦!

    2012-10-10 21:45:24   

  13. 所谓刚子所谓刚子
    这个评论没有自动填充功能 是相当的不爽啊。。每次都要手动输入 太麻烦!

    2012-10-10 21:42:08   

发布评论

最新评论

  1. SpecsSpecs

    不错~~

  2. zhyzhy

    我也遇到这个问题 不知道是swf 、jcrop 、 uploadify 还是浏览器缓存

  3. java开发java开发

    您好!我按你的源码进行了编,能正常运行,但是我们项目是由java开发的,怎么做才能将生成的一个可执行文件?我想把这个文件放到服务器上直接运行,不想安装~