js列表排序(用JS实现排序的功能)

:暂无数据 2026-07-15 02:30:01 :0

js列表排序(用JS实现排序的功能)

大家好,今天小编来为大家解答以下的问题,关于js列表排序,用JS实现排序的功能这个很多人还不知道,现在让我们一起来看看吧!

本文目录

用JS实现排序的功能

js常用排序实现,参考代码如下

《script》 
Array.prototype.swap = function(i, j) 
{ 
var temp = this; 
this; 
this = temp; 
} 
Array.prototype.bubbleSort = function() 
{ 
for (var i = this.length - 1; i 》 0; --i) 
{ 
for (var j = 0; j 《 i; ++j) 
{ 
if (this) this.swap(j, j + 1); 
} 
} 
} 
Array.prototype.selectionSort = function() 
{ 
for (var i = 0; i 《 this.length; ++i) 
{ 
var index = i; 
for (var j = i + 1; j 《 this.length; ++j) 
{ 
if (this) index = j; 
} 
this.swap(i, index); 
} 
} 
Array.prototype.insertionSort = function() 
{ 
for (var i = 1; i 《 this.length; ++i) 
{ 
var j = i, value = this; 
while (j 》 0 && this 》 value) 
{ 
this; 
--j; 
} 
this = value; 
} 
} 
Array.prototype.shellSort = function() 
{ 
for (var step = this.length 》》 1; step 》 0; step 》》= 1) 
{ 
for (var i = 0; i 《 step; ++i) 
{ 
for (var j = i + step; j 《 this.length; j += step) 
{ 
var k = j, value = this; 
while (k 》= step && this 》 value) 
{ 
this; 
k -= step; 
} 
this = value; 
} 
} 
} 
} 
Array.prototype.quickSort = function(s, e) 
{ 
if (s == null) s = 0; 
if (e == null) e = this.length - 1; 
if (s 》= e) return; 
this.swap((s + e) 》》 1, e); 
var index = s - 1; 
for (var i = s; i 《= e; ++i) 
{ 
if (this) this.swap(i, ++index); 
} 
this.quickSort(s, index - 1); 
this.quickSort(index + 1, e); 
} 
Array.prototype.stackQuickSort = function() 
{ 
var stack = ; 
while (stack.length 》 0) 
{ 
var e = stack.pop(), s = stack.pop(); 
if (s 》= e) continue; 
this.swap((s + e) 》》 1, e); 
var index = s - 1; 
for (var i = s; i 《= e; ++i) 
{ 
if (this) this.swap(i, ++index); 
} 
stack.push(s, index - 1, index + 1, e); 
} 
} 
Array.prototype.mergeSort = function(s, e, b) 
{ 
if (s == null) s = 0; 
if (e == null) e = this.length - 1; 
if (b == null) b = new Array(this.length); 
if (s 》= e) return; 
var m = (s + e) 》》 1; 
this.mergeSort(s, m, b); 
this.mergeSort(m + 1, e, b); 
for (var i = s, j = s, k = m + 1; i 《= e; ++i) 
{ 
b; 
} 
for (var i = s; i 《= e; ++i) this; 
} 
Array.prototype.heapSort = function() 
{ 
for (var i = 1; i 《 this.length; ++i) 
{ 
for (var j = i, k = (j - 1) 》》 1; k 》= 0; j = k, k = (k - 1) 》》 1) 
{ 
if (this) break; 
this.swap(j, k); 
} 
} 
for (var i = this.length - 1; i 》 0; --i) 
{ 
this.swap(0, i); 
for (var j = 0, k = (j + 1) 《《 1; k 《= i; j = k, k = (k + 1) 《《 1) 
{ 
if (k == i || this) --k; 
if (this) break; 
this.swap(j, k); 
} 
} 
} 
function generate() 
{ 
var max = parseInt(txtMax.value), count = parseInt(txtCount.value); 
if (isNaN(max) || isNaN(count)) 
{ 
alert("个数和最大值必须是一个整数"); 
return; 
} 
var array = ; 
for (var i = 0; i 《 count; ++i) array.push(Math.round(Math.random() * max)); 
txtInput.value = array.join("\n"); 
txtOutput.value = ""; 
} 
function demo(type) 
{ 
var array = txtInput.value == "" ?  : txtInput.value.replace().split("\n"); 
for (var i = 0; i 《 array.length; ++i) array); 
var t1 = new Date(); 
eval("array." + type + "Sort()"); 
var t2 = new Date(); 
lblTime.innerText = t2.valueOf() - t1.valueOf(); 
txtOutput.value = array.join("\n"); 
} 
《/script》 
《body onload=generate()》 
《table style="width:100%;height:100%;font-size:12px;font-family:宋体"》 
《tr》 
《td align=right》 
《textarea id=txtInput readonly style="width:100px;height:100%"》《/textarea》 
《/td》 
《td width=150 align=center》 
随机数个数《input id=txtCount value=500 style="width:50px"》《br》《br》 
最大随机数《input id=txtMax value=1000 style="width:50px"》《br》《br》 
《button onclick=generate()》重新生成《/button》《br》《br》《br》《br》 
耗时(毫秒):《label id=lblTime》《/label》《br》《br》《br》《br》 
《button onclick=demo("bubble")》冒泡排序《/button》《br》《br》 
《button onclick=demo("selection")》选择排序《/button》《br》《br》 
《button onclick=demo("insertion")》插入排序《/button》《br》《br》 
《button onclick=demo("shell")》谢尔排序《/button》《br》《br》 
《button onclick=demo("quick")》快速排序(递归)《/button》《br》《br》 
《button onclick=demo("stackQuick")》快速排序(堆栈)《/button》《br》《br》 
《button onclick=demo("merge")》归并排序《/button》《br》《br》 
《button onclick=demo("heap")》堆排序《/button》《br》《br》 
《/td》 
《td align=left》 
《textarea id=txtOutput readonly style="width:100px;height:100%"》《/textarea》 
《/td》 
《/tr》 
《/table》 
《/body》

使用jQuery实现列表排序功能

jquery拖拽排序,针对后台列表table进行拖拽排序(超实用!)

现在很多后台列表为了方便均使用拖拽排序的功能,对列表进行随意的排序。

话不多说 ,我在网上找了一些demo,经过对比,现在把方便实用的一个demo列出来,基于jqueryUI.js

先上html代码,很简单:

《!DOCTYPE html》《html lang="en"》《head》
《meta charset="UTF-8"》
《title》jqueryUI拖动《/title》《/head》《script src="js/jquery-1.11.0.min.js"》《/script》《script src="js/jquery-ui.min.js"》《/script》《style》
tr{cursor: pointer;}《/style》《body》《table id="sort"》
《thead》
《tr》
《th class="index"》序号《/th》
《th》年份《/th》
《th》标题《/th》
《th》作者《/th》
《/tr》
《/thead》
《tbody》
《tr》
《td class="index"》1《/td》
《td》2014《/td》
《td》这是第1个《/td》
《td》阿斯蒂芬阿斯蒂芬《/td》
《/tr》
《tr》
《td class="index"》2《/td》
《td》2015《/td》
《td》这是第2个《/td》
《td》阿萨德发射点发岁的《/td》
《/tr》
《tr》
《td class="index"》3《/td》
《td》2016《/td》
《td》这是第3个《/td》
《td》阿萨德发送地方《/td》
《/tr》
《tr》
《td class="index"》4《/td》
《td》2017《/td》
《td》这是第4个《/td》
《td》的说法大赛分《/td》
《/tr》
《/tbody》《/table》《/body》《/html》

除了要引入jquery.js 和jqueryUI.js外,还需要如下一段代码:

$(document).ready(function(){        var fixHelperModified = function(e, tr) {                    var $originals = tr.children();                    var $helper = tr.clone();
$helper.children().each(function(index) {
$(this).width($originals.eq(index).width())
});                    return $helper;
},
updateIndex = function(e, ui) {
$(’td.index’, ui.item.parent()).each(function (i) {
$(this).html(i + 1);
});
};
$("#sort tbody").sortable({
helper: fixHelperModified,
stop: updateIndex
}).disableSelection();
});

这是我发现的比较实用的一个拖动排序,还是比较方便的。

JS,实现表格内容排序

《!DOCTYPE HTML》
《html》
《head》
《meta charset="UTF-8" /》
《title》main.html《/title》
《style type="text/css"》
table {
width: 300px; border : 1px solid black;
border-collapse: collapse;
border: 1px solid black;
}
td {
border: 1px solid black;
}
《/style》
《script type="text/javascript"》
function paiXu ()
{
var tabNode = document.getElementsByTagName ("table");
var trs = tabNode.rows;
var arr = new Array;
for ( var x = 0; x 《 trs.length; x++)
{
arr.push (trs);
}
sortt (arr);
for ( var x = 0; x 《 arr.length; x++)
{
tabNode.tBodies);
}
}
function sortt (arr)
{
for ( var x = 0; x 《 arr.length; x++)
{
for ( var y = x + 1; y 《 arr.length; y++)
{
if (parseInt (arr.nodeValue))
{
var tmp = arr;
arr;
arr = tmp;
}
}
}
}
《/script》
《/head》
《body》
《input type="button" value="排序" onclick="paiXu()"》
《table》
《tr》
《td》小明《/td》
《td》23《/td》
《td》《/td》
《td》《/td》
《td》《/td》
《/tr》
《tr》
《td》小花《/td》
《td》21《/td》
《td》《/td》
《td》《/td》
《td》《/td》
《/tr》
《tr》
《td》小高《/td》
《td》12《/td》
《td》《/td》
《td》《/td》
《td》《/td》
《/tr》
《tr》
《td》小林《/td》
《td》25《/td》
《td》《/td》
《td》《/td》
《td》《/td》
《/tr》
《tr》
《td》小王《/td》
《td》35《/td》
《td》《/td》
《td》《/td》
《td》《/td》
《/tr》
《/table》
《/body》
《/html》

js几种常见的排序算法

原理:比较两个相邻的元素,将值大的元素交换至右端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。

冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。

冒泡排序优化版:

一.选择排序原理

1.每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置

2.再从剩余未排序元素中继续寻找最小(大)元素,然后放到刚才已排序序列的后面。

3.以此类推,直到全部待排序的数据元素排完。

选择排序是不稳定的排序方法。例如:序列3,3,2,1, 我们知道第一次遍历的时候,选择最后一个元素1和第一个元素3交换,那么原序列中2个3的相对前后顺序就和之前不一样了,所以选择排序不是一个稳定的排序算法。

二.选择排序时间复杂度

第一次循环比较 n - 1次,第二次循环比较 n - 2次,依次类推,最后一个元素不需要比较,因此共进行 n - 1次循环,最后一次循环比较1次。

因此一共比较1 + 2 + 3 + ... +(n - 2)+(n - 1)次,求和得n2/2 - n / 2 ,忽略系数,取最高指数项,该排序的时间复杂度为O(n2)

选择排序优化版:

插入排序:

Js写一个表格ID排序,从小到达排序

《!DOCTYPE html》
《html》
  《head》
***隐藏网址***
  
    《title》RunJS 演示代码《/title》
    《style》
            table{
                margin:0 auto;
                width:400px;
                border-collapse:collapse;
                border:1px solid black;
            }
            caption{
                text-align:left;
            }
            td,th{
                border:1px solid black;
            }
        《/style》
        《script》
                    var st = function(asc){
                        var tb = document.getElementsByTagName("table");
                        var trs = tb.tBodies.rows;
                        var arr = ;
                        for(var i=1;i《trs.length;i++){
                                arr.push(trs);
                        }
                        arr.sort(function(a,b){
                                var ida = a.cells.innerHTML * 1;
                                var idb = b.cells.innerHTML * 1;
                                if(ida 》 idb) return asc * 1;
                                else if(ida 《 idb) return asc * -1;
                                else return 0;
                        });
                        for(var i =0;i《arr.length;i++){
                            tb.tBodies);
                        }
                    };
        《/script》
  《/head》
《body》
    《table》
            《caption》《input type="button" value="排序" onclick="st(1)" /》《/caption》
            《tr》《th》ID《/th》《th》姓名《/th》《th》年龄《/th》《/tr》
            《tr》《td》4《/td》《td》张三《/td》《td》17《/td》《/tr》
            《tr》《td》1《/td》《td》吕一《/td》《td》19《/td》《/tr》
            《tr》《td》2《/td》《td》王二《/td》《td》18《/td》《/tr》
            《tr》《td》3《/td》《td》李武《/td》《td》16《/td》《/tr》
    《/table》
  《/body》
《/html》

用JS给查询出来的数据排序

1 首先,排序是需要根据某一个字段进行的,你首先需要确定你需要排序的字段.
2 然后在JS中,可以对你认定的排序字段进行ORDERBY操作的,JS也可以支持.
3 至于每页显示多少条数据,这个你可以自己写分页脚本控制.
只提供思想,希望有所帮助.

用JS实现排序的功能的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用JS实现排序的功能、用JS实现排序的功能的信息别忘了在本站进行查找哦。

js列表排序(用JS实现排序的功能)

本文编辑:admin

更多文章:


withdrawal(withdrawal是什么意思)

withdrawal(withdrawal是什么意思)

今天给各位分享withdrawal是什么意思的知识,其中也会对withdrawal是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 07:00

根据流程图怎么编写程序(用c语言根据流程图写程序)

根据流程图怎么编写程序(用c语言根据流程图写程序)

大家好,今天小编来为大家解答以下的问题,关于根据流程图怎么编写程序,用c语言根据流程图写程序这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 06:00

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)

大家好,关于在from子句中可以出现很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何在from 子句中嵌套查询下面的语句在access中出错!的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望

2026年10月11日 05:20

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)

其实countif函数统计个数怎么用的问题并不复杂,但是又很多的朋友都不太了解countif函数怎么用 详解Excel中countif函数的使用方法,因此呢,今天小编就来为大家分享countif函数统计个数怎么用的一些知识,希望可以帮助到大

2026年10月11日 03:30

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)

本篇文章给大家谈谈正则匹配数字之前的字符,以及正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问

2026年10月11日 03:00

register语言学(register语言学)

register语言学(register语言学)

“register语言学”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看register语言学(register语言学)!

2026年10月11日 01:40

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)

“系统架构设计师可以直接考吗”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看系统架构设计师可以直接考吗(学生可以报名系统架构设计师吗)!

2026年10月11日 01:00

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)

大家好,如果您还对orlnsertbootmediinselected不太了解,没有关系,今天就由本站为大家分享orlnsertbootmediinselected的知识,包括我电脑开机显示这个是什么意思or insert boot med

2026年10月10日 23:00

display的用法(display是什么意思 详解display的含义和用法)

display的用法(display是什么意思 详解display的含义和用法)

大家好,如果您还对display的用法不太了解,没有关系,今天就由本站为大家分享display的用法的知识,包括display是什么意思 详解display的含义和用法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月10日 22:00

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

html全部居中代码(怎么让网页居中显示,html如何让网页居中)

大家好,今天小编来为大家解答以下的问题,关于html全部居中代码,怎么让网页居中显示,html如何让网页居中这个很多人还不知道,现在让我们一起来看看吧!

2026年10月10日 21:10

最近更新

withdrawal(withdrawal是什么意思)
2026-10-11 07:00:01 浏览:0
热门文章

标签列表