插入排序
来源:互联网 发布:iphone手机壳品牌知乎 编辑:程序博客网 时间:2024/06/13 08:51
开发过程中可能不会常用到复杂的算法。不过排序还是很常见的。今天学习一下插入排序(insertIntoSort)。
插入排序简单来说就是将一个数组分成两部分,前面部分是排好序的,后面部分是乱序的。通过将乱序部分的数值在有序的部分找到合适的位置,并将其插入进去。
在算法导论中,伪代码描述的for循环是2~A.length()。是因为书中假定数组开始位置是从1开始的,而实际数组开始是从0开始的,所以在写代码的时候要留意(记录下来,怕忘记)。
上代码好了 ,Java:
private static void insterIntoSort(int arr[]) { int key = 0;//当前准备插进去的数值 int i = 0; for (int j = 1; j < arr.length; j++) { i = j - 1; key = arr[j]; while (i >= 0 && arr[i] > key) { arr[i+1] = arr[i]; //这里用i+1不用j的原因是,因为在while循环里,是从左往右找合适位置 i = i-1; } arr[i+1] = key; //把key放到合适的位置 } }另外,最近在学python,也上一份python的代码
def insert_into_sort(array):#函数定义 for j in range(1, len(array)): print j key = array[j] i = j - 1 while i >= 0 and array[i] > key: print "i=%d" % i array[i + 1] = array[i] i = i - 1 #while循环结束 array[i + 1] = key #for循环结束 print array#insert_into_sort函数结束# insert_into_sort([2, 1, 5, 8, 7, 3])insert_into_sort([5, 2, 4, 6, 1, 3]) #函数调用
阅读全文
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- node+koa+Mysql 搭建博客(mini-blog
- webstorm 给console.log设置快捷键
- 第2章 运算符&表达式&数据类型
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 初学者(一)Dictionary,ConcurrentDictionary,SortedDictionary
- 插入排序
- AngularJS输入内容到公告窗,敏感字以*代替
- 自定义可拖拽的父容器
- 数据库的基本构成和原理-2
- 684. Redundant Connection
- codeforces F.Forbidden Indices后缀数组+LCP
- 搜索页面实现总结
- int *和int[]共同点和区别
- 手把手教你搭建FastDFS集群(下)