插入排序
来源:互联网 发布:安装ubuntu到u盘 编辑:程序博客网 时间:2024/04/27 20:49
最近在开数据结构与算法,把看到的总结一下,参考资料算法导论。现在是最简单的插入排序:
public static function InstertSort(p_list:Array):void{var a:Array = p_list;var key:Number;var i:int;//迭代for(var j:int = 1; j<a.length; j++){key = a[j];//标记i = j-1;//当对比的值比目标值大时需要执行排序,因为左边都是排好序的,所以当出现条件不符的时候,不需要继续往下对比while(i>=0 && a[i]>key){a[i+1] = a[i];//对比值比目标值大,对比值需要往后移一位i--;//在比较下一个看是否需要移位}// 比较完成之后置换a[i+1] a[j] 因为假如执行过排序,那么a[i+1]已经被移位了if(i != j-1){a[i+1] = key;}}}
插入算法需要注意的是,肯定有一边是排好序的,你只需要比较一下,目标值和要对比的值谁大,一直比到比目标值小的那个值为止,这时循环就可以中断了,然后,既然它要插进去,那么后面的值都要移位,给它腾位置。
//-------------------------------------------------------------------------------------------
结果:
输入:1,3,20,45,78,6,4,76,9,12,54
输出:1,3,4,6,9,12,20,45,54,76,78
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- C 语言中 setjmp 和 longjmp
- 装饰模式(Decorator)
- Codeforces Round #209 (Div. 2) <A-D>
- Apache Cxf WebService整合Spring(1)
- Integer
- 插入排序
- C++编程——微生物增殖
- Hashmap与Trove4j
- 好代码集锦(随时补充)
- Android传感器
- [Unity3D]AssetBundles的使用
- 用Django Rest Framework和AngularJS开始你的项目
- 猜数游戏代码--图形界面
- 黑马程序员:DOM+JS