Javascript希尔排序
将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行分组,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><script>function shellSort(arr) {for (let gap = Math.floor(arr.length / 2); gap >= 1; Math.floor(gap /= 2))for (let i = gap; i < arr.length; i++)for (let j = i; j >= gap && arr[j - gap] > arr[j]; j -= gap) {let t = arr[j];arr[j] = arr[j - gap];arr[j - gap] = t;}return arr;}console.log(shellSort([5, 4, 8, 9, 7, 2, 3, 1, 6])); //[1,2,3,4,5,6,7,8,9]</script></body>
</html>
Javascript希尔排序相关推荐
- JavaScript实现ShellSort希尔排序算法(附完整源码)
JavaScript实现ShellSort希尔排序算法(附完整源码) Comparator.js完整源代码 Sort.js完整源代码 ShellSort.js完整源代码 Comparator.js完整 ...
- JavaScript Switc希尔排序
算法详解: 希尔排序的基本思想: (1)选择一个希尔增量序列t1,t2,-,tk,(递减序列,tk=1) (2)按增量序列个数k,对序列进行k 趟排序, 每趟排序,根据对应的增量ti,将待排序列分割成 ...
- php取名字算法,JavaScript排序算法之希尔排序的2个实例_基础知识
插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率. 但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位. 希尔排序按其设计者希尔(Donald Shell)的 ...
- 算法系列【希尔排序】篇
常见的内部排序算法有:插入排序.希尔排序.选择排序.冒泡排序.归并排序.快速排序.堆排序.基数排序等.用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入 ...
- javascript常用排序算法总结
算法是程序的灵魂.虽然在前端的开发环境中排序算法不是很经常用到,但常见的排序算法还是应该要掌握的.我在这里从网上整理了一下常见排序算法的javascript实现,方便以后查阅. 归并排序: 1 fun ...
- JavaScript实现排序算法
排序算法主要用在元素的数组排序,常见的排序算法有冒泡排序.选择排序.插入排序.希尔排序.快速排序.归并排序等.这些排序算法都可以用JavaScript实现.下面的排序算法都假设是从小到大进行排序,从大 ...
- 算法笔记(JavaScript版)——排序
算法笔记(JavaScript版)--排序 本文内容根据Rebert Sedgewick和Kevin Wayne的<算法(第四版)>整理,原代码为java语言,自己修改为JavaScrip ...
- 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序
冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...
- 直接插入排序与希尔排序
直接插入排序(Straight Insertion Sort): 一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的.记录数量增1的有序表. 原理图如 ...
最新文章
- 杭电3371Connect the Cities
- MD5加密以及验证加密-加盐
- linux 网络管理 防火墙 iptables
- Authentication vs. Authorization 验证与授权[整理]
- 静态页中调用动态数据的三种办法
- Vue 学习 之 7.01 学习笔记
- 2018.12.08 codeforces 946D. Timetable(背包)
- eclipse中ast_JavaParser中AST节点的观察者
- 查找发布地图的 REST URL并查询相关信息
- 【转载】URL中的文本IPv6地址的格式RFC2732
- TCP协议的部分解析(1)
- 差分进化算法python_差分进化算法DE-python实现
- Mac Homebrew命令报错/usr/local/Homebrew/Library/Homebrew/version.rb:368:in `initialize’
- 程序开发中常用的密码学家的算法推荐清单
- 万能html5视频播放器安卓,XPlayer万能视频播放器
- 工业机器人技术试题_工业机器人考试试题库
- android webview 获取cookie,Android WebView 之Cookie
- QTextEdit添加输入提示语
- 零基础Python学习(2) --- 《我想你猜》1.0版
- pure-ftpd 搭建 FTP 服务器
热门文章
- 大厂内部资料 | Redis 性能优化的 13 条军规!
- Python 大数据分析疫情:如何实现实时数据爬取及 Matplotlib 可视化?
- 漫画:大厂总体 SaaS 化部署,到底什么是 IaaS、PaaS 和 SaaS?
- Google Reader 干掉了 RSS!
- “遗留代码是传奇!”
- 春晚鬼畜 B 站日排行最高,赵本山:我的时代还没有结束!
- 燃爆了!胡歌秒变最帅产品经理发布荣耀V20!
- 移动开发者如何更好地学习 React Native? | 技术头条
- springboot入门书籍推荐,电商实战之优惠卷实现(1)
- 如何实现分布式锁?赶紧收藏备战金三银四!