排序—直接排序(js实现)
2016-01-12 22:08
671 查看
直接排序,将一个记录插入到一个已经排好序的有序表中,从而得到一个新的有序表,时间复杂度为:n2n^2
Shell插入排序(缩小增量排序法),利用这种写法可以显著的优点在于多个cpu并行处理数据的时候,时间复杂度为:n2n^2,这种排序方法就是对直接插入排序方法进行优化,也就是首先对整个数组进行分组(第一次分组,每个数组内只含有两个元素),一次每次对分组数除以2,由于不存在使用同一数据的情况,所以可以并行处理数据。
function StraightInsertSort (arr) { var i, j, current, len; for (i = 1, len = arr.length; i < len; i++) { j = i - 1; current = arr[i]; while (j >= 0 && arr[j] > current) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = current; } }
Shell插入排序(缩小增量排序法),利用这种写法可以显著的优点在于多个cpu并行处理数据的时候,时间复杂度为:n2n^2,这种排序方法就是对直接插入排序方法进行优化,也就是首先对整个数组进行分组(第一次分组,每个数组内只含有两个元素),一次每次对分组数除以2,由于不存在使用同一数据的情况,所以可以并行处理数据。
// Shell为私有函数,后续博客会有对整个Sort类的实现 function Shell (delta, arr) { var i, j, current, len; for (i = delta, len = arr.length; i < len; i++) { j = i - delta; current = arr[i]; while (j >= 0 && arr[j] > current) { arr[j + delta] = arr[j]; j = j - delta; } arr[j + delta] = current; } } function ShellInsertSort (arr) { var delta; // delta为分组数 for (delta = arr.length / 2; delta >= 1; delta /= 2) { Shell(delta, arr); } }
相关文章推荐
- JavaScript 数字与字符串 比较大小
- js-面向对象的程序设计,函数表达式
- js清空数组的三种方法
- JSP入门笔记
- JSP获取页面参数时出现中文乱码
- 在一个js函数里面获取另一个js函数的变量
- 创建并读取JSON格式数据
- JavaScript正则匹配
- JS之函数和事件
- c# json操作
- jsp乱码问题&代码
- js计算器
- Js操作Select大全(取值、设置选中等等)
- macJavascript调用动态链接库
- js初学笔记第一课
- 网页抓取jsoup
- js-实现集合的操作
- ------javascript------N
- js打印---我传给肖方username和userpassword,他在后端处理完成,返回给我。
- 启动jetty后,访问jsp页面报500错: JSP support not configured