<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>希尔排序</title>
<!--<link rel="stylesheet" type="text/css" href="../style/fdt.css" />-->
<script type="text/javascript" src="../js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="../js/jquery.easydrag.handler.beta2.js"></script>
<script type="text/javascript"> $(document).ready(
function() { var array_1 = [9,8,7,6,5,4,3,2,1];
alert(array_1);
/*shellSort*/
alert(shellSort(array_1)); }
); </script> <style type="text/css"> * { padding:0; margin:0; } body {
padding: 100px;
font-size: 15px;
} </style> <script type="text/javascript">
function shellSort(array){
var stepArr = [1031612713, 217378076, 45806244, 9651787, 2034035, 428481, 90358, 19001, 4025, 1750, 836, 701, 301, 132, 57, 23, 10, 4, 1]; // reverse() 在维基上看到这个最优的步长 较小数组
var i = 0;
var stepArrLength = stepArr.length;
var len = array.length;
var len2 = parseInt(len/2); for(;i < stepArrLength; i++){
if(stepArr[i] > len2){
continue;
}
stepSort(stepArr[i]);
}
// 排序一个步长
function stepSort(step){ //console.log(step) 使用的步长统计 var i = 0, j = 0, f, tem, key; for(;i < step; i++){// 依次循环列
for(j=1; step * j + i < len; j++){//依次循环每列的每行
tem = f = step * j + i;
key = array[f];
while((tem-=step) >= 0){// 依次向上查找 <-
// <----
// <------- if(array[tem] > key){
array[tem+step] = array[tem];
}else{
break;
}
}
array[tem + step ] = key;
}
} } return array; } </script> </head> <body>
<div>希尔排序</div>
</body>
</html>

最新文章

  1. 【OpenJudge 1665】完美覆盖
  2. codeforces A. Bayan Bus(简单模拟)
  3. 使用XtraGrid自定义列计算1 z
  4. c 深度剖析 1
  5. Java 中方法的重载
  6. JavaScript基础精华03(String对象,Array对象,循环遍历数组,JS中的Dictionary,Array的简化声明)
  7. 【Winform】Winform 制作一键发布web
  8. python中os模块path.abspath()返回的并不是绝对值,而是个错误的不存在的拼接地址
  9. [置顶] API相关工作的个人总结_工作中琐碎细节的总结二
  10. 【LeetCode】2.Add Two Numbers
  11. PAT (Advanced Level) 1006. Sign In and Sign Out (25)
  12. hdu--1711--kmp应用在整形数组--Number Sequence
  13. Testng基本问题
  14. Mysql使用中文字段排序的实现--order by
  15. ABP新增模块可能遇到的问题
  16. jmeter性能测试入门
  17. 跑 vue 项目
  18. 621. Task Scheduler
  19. linux C++ 多线程使用pthread_cond 条件变量
  20. 【javascript】利用jquery ajaxPrefilter防止ajax重复提交

热门文章

  1. RabbitMQ 工作队列
  2. 【BZOJ 1178】【APIO 2009】CONVENTION会议中心
  3. 【CodeForces 615E】Hexagons
  4. JSP导入EXCEL样式
  5. UML类图中的六种关系及实例【补充】
  6. iOS的网络环境判断
  7. bzoj 3196 树套树模板
  8. 【bzoj2152】 聪聪可可
  9. 树莓派启用root账户
  10. Bzoj2753 [SCOI2012]滑雪与时间胶囊