//生成20-100之间的20个随机数
function getSortList() {
var arr_a = [];
for (var i = 0; i < 20; i++) {
arr_a.push(Math.floor(Math.random() * 1000));
}
return arr_a;
}
//冒泡排序
//交换相邻位置的元素,每次把最小元素换到最左边,每次范围加一。
function bubbleSort() {
var a = getSortList(),
l = a.length;
document.write('冒泡前的: ' + a + '<br/>');
if (l <= 1) {
return true;
}
var min;
for (var i = 0; i < l; i++) {
min = a[i];
for (var j = i; j < l; j++) {
if (a[j] < min) {
min = a[j];
a[j] = a[i];
a[i] = min;
}
}
}
document.write('冒泡排序: ' + a + '<br/><br/>');
}
bubbleSort();
//插入排序
//O(N^2) 把第N个元素插入前N-1有序的数组中,从后往前扫描,不符合条件的元素往后移,符合条件就将第N个元素放入当前位置。
function insertSort(list) {
var a = getSortList(),
l = a.length,
b = [];
document.write('冒泡前的: ' + a + '<br/>');
if (l <= 1) {
return true;
}
for (var i = 0; i < l; i++) {
b[i] = a[i];
for (var j = l; j >= 0; j--) {
var max = b[j];
if (b[j - 1] && b[j - 1] > b[j]) {
max = b[j - 1];
b[j - 1] = b[j];
b[j] = max;
}
}
}
document.write('插入排序: ' + b + '<br/><br/>');
}
insertSort(list)
//快速排序
//O(N*logN) (平均情况) 找到一个参考元素,将比它小的元素放到其左边,比它大的元素放到其右边,参考元素就在最终的位置,再对左右进行排序。
function quickSort(list) {
var a = [],
b = [],
l = list.length - 0,
middle = l % 2 === 0 ? l / 2 : ((l - 1) / 2);
if (l <= 2) {
return list;
}
var left = 0,
right = 0;
for (var i = 0; i < l; i++) {
if (i === middle) {
continue;
}
if (list[middle] > list[i]) {
a[left++] = list[i];
} else {
b[right++] = list[i];
}
}
a[left++] = list[middle];
return quickSort(a).concat(quickSort(b));
}
var list = getSortList();
document.write('冒泡前的: ' + list + '<br/>');
document.write('快速排序: ' + quickSort(list) + '<br/><br/>');
分享到:
相关推荐
javascript动态排序表格 javascript动态排序表格 javascript动态排序表格 javascript动态排序表格
基于javascript的排序算法源码,包括冒泡排序、选择排序、希尔排序、插入排序、快速排序、归并排序、基数排序、堆排序
js排序算法实现 包括以下算法:冒泡排序 选择排序 插入排序 谢尔排序 快速排序(递归) 快速排序(堆栈) 归并排序 堆排序 从执行时间上可以很直观地看出各种排序的效率
简单的JavaScript排序二叉树,方便理解,由浅入深学习必备
下面小编就为大家带来一篇JavaScript排序算法动画演示效果的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JQuery实现数据的分页显示,同时实现表格内容的排序
JavaScript 中常见排序算法详解
javascript排序函数实现数字排序 [removed] function SortNumber(obj,func) //定义通用排序函数 { //参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常 if(!(obj instanceof Array) || !(func ...
数字排序.rar数字排序.rar数字排序.rar数字排序.rar数字排序.rar数字排序.rar 数字排序.rar数字排序.rar数字排序.rar数字排序.rar数字排序.rar数字排序.rar
运用javascript排序,数组的sort方法
主要介绍了Javascript排序算法之合并排序(归并排序)的2个例子,需要的朋友可以参考下
JavaScript排序算法 使用JavaScript实现的排序算法集合。 到目前为止,我们已经在此介绍了 , , 算法。 有关更多排序算法,请继续关注! 运行此应用程序 该项目是使用commonjs约定编写的,即在nodejs环境中编写的,...
javascript 排序库包括:珠排序、重力排序、桶排序、分箱排序、计数排序、插入排序、合并排序、基数排序 排序算法是一种将列表中的元素按一定顺序排列的算法。 最常用的顺序是数字顺序和字典顺序。 高效排序对于优化...
JavaScript-数据排序添加.rar JavaScript-数据排序添加.rar
sort.js:JavaScript实现十个常用的排序算法库
JavaScript 表格排序双击可进行按表格列排序
JavaScript实现表格排序,按数字、日期、汉字排序!
排序搜索JavaScript排序和搜索教程