排序:堆排序
2008-04-26 18:49
162 查看
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<title>Untitled Document</title>
</head>
<body>
<script type="text/javascript">...
function fheap(arr, parent)...{
var len = arr.length, temp;
var son = parent * 2;
if (son + 1 <= len) ...{
son = arr[son - 1] > arr[son] ? son : son + 1;
}
while (son <= len && arr[son - 1] > arr[parent - 1]) ...{
temp = arr[son - 1];
arr[son - 1] = arr[parent - 1];
arr[parent - 1] = temp;
parent=son;
son = 2 * parent;
if (son + 1 <= len) ...{
son = arr[son - 1] > arr[son] ? son : son + 1;
}
}
return arr;
}
/**//**
* 堆排序法
* @param {Object} arr
*/
function heap_sort(arr, res)...{
var n = arr.length, temp;
var mid = Math.floor(n / 2);
for (var i = mid; i >= 1; i--) ...{
arr = fheap(arr, i);
}
//alert(arr);
for (var j = n; j > 0; j--) ...{
temp = arr[j - 1];
arr[j - 1] = arr[0];
arr[0] = temp;
res[res.length] = arr[j - 1];
arr.length = arr.length - 1;
arr = fheap(arr, 1);
}
}
var arr = [82, 16, 9, 95, 27, 75, 42, 69, 34];
res = [];
heap_sort(arr, res);
alert(res);
</script>
</body>
</html>
相关文章推荐
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- 白话讲排序系列(六) 堆排序(绝对让你明白堆排序!)
- 选择排序之堆排序Java实现
- 各类排序算法实现(堆排序、希尔排序、快速排序、归并排序等)
- 内部排序之堆排序
- 3.找实习笔记三:用python写排序(三) 堆排序
- 数据结构实验之排序四:寻找大富翁(堆排序)
- 21 改良的选择排序--堆排序
- Java常用排序算法之堆排序
- 插入排序,希尔排序,堆排序
- 排序算法-选择排序之堆排序
- 数组排序(冒泡、选择、插入、快排、希尔、桶排序、堆排序)
- 排序六 堆排序
- 插入排序、快速排序、堆排序
- 学习笔记--- 比较排序之堆排序
- 数据结构-排序算法详解(插入排序,希尔排序,堆排序,归并排序,快速排序,桶式排序)
- 排序(之堆排序)
- 数据结构面试之十一——排序2(归并、快速、堆排序)
- 算法学习之排序学习之堆排序和如何建堆