`
wuzijingaip
  • 浏览: 329896 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

js 排序demo

阅读更多

http://www.zlong.org/js-practice/imgswap.html

<!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> 
<style type="text/css"> 
*{font-family:Arial, Helvetica, sans-serif}
.div1{ 
background-color:#35BDDB; 
float:left; 
margin-left:1px;
color:#fff;
vertical-align:middle;
font-size:12px;
}
.sorted{
	background-color:#CFD0D2}
#content{ width:100%; height:601px; background-color:#222222; text-align:center; }
</style> 
<script type="text/javascript" src="jquery-1.4.2.js"></script> 
<script type="text/javascript"> 
var numbs = [];
var numbers = 40;
var divWidth = Math.floor(1000/numbers);
var ti = 1;
var step = 0;
var step1 = 0;
function init(){
	step1 = 0;
	numbers = $("#numb").val();
	if(isNaN(numbers) || Number(numbers) <= 0){
		numbers = 40;
		$("#numb").val(40);
	}
	if(Number(numbers) > 500){
		numbers = 500;
		$("#numb").val(500);
	}
	numbs = [];
	step = 0;
	ti = 1;
	$("#content").html("");
	while(numbs.length < numbers){
		var t = Math.floor(600*Math.random());
		if(numbs.indexOf(t) < 0){
			numbs.push(t);
		}
	}
	$("#step").html("");
	$.each(numbs, function(i,n){
		$("<div>").addClass("div1").css({width: (100/numbers - 0.1)+"%", height: n + "px", "margin-top": (600-n) + "px"})
			.attr("id", n).appendTo($("#content"));
	});
}
 
$(function(){
	init();
	$("#random").click(init);
	$("#bubbleSort").click(function(){
		$(":input").attr("disabled","disabled");
		if(step1 != 0){
			init();
		}
		bubbleSort();
	});
	$("#QuickSort").click(function(){
		$(":input").attr("disabled","disabled");
		if(step1 != 0){
			init();
		}
		QuickSort(numbs, 0, numbs.length);
	});
});
 
function bubbleSort(){
	for(i = 0; i< numbs.length;i++){
		for(j = i + 1;j<numbs.length;j++){
			if(numbs[i] > numbs[j]){
				swap(numbs, i, j);
			}
		}
	}
}
 
function swap(arrays, i, j){
	var t = arrays[i];
	var m = arrays[j];
	arrays[i] = arrays[j];
	arrays[j] = t;
	step1++;
	setTimeout("swapDiv($('#' + "+t+"), $('#' + "+m+"))", (ti++)*50);
}
 
function swapDiv(div1, div2){
	$(".div1").removeClass("sorted");
	var tempDiv = $("<div>");
	div1.after(tempDiv);
	div2.after(div1);
	tempDiv.after(div2);
	tempDiv.remove();
	div1.addClass("sorted");
	div2.addClass("sorted");
	$("#step").html(++step);
	
	if(step == step1){
		$(":input").attr("disabled","");
		$(".div1").removeClass("sorted");
	}
}
 
function QuickSort(pData, left, right){    
	var i,j;   
	var middle,temp;   
	i = left;   
	j = right;   
	middle = pData[left];   
	while(true){   
		while((++i)<right-1 && pData[i]<middle);   
		while((--j)>left && pData[j]>middle);   
		if(i>=j)   
			break;    
		swap(pData, i, j);
	}   
	swap(pData, left, j);  
	if(left<j)    
		QuickSort(pData,left,j);   
	if(right>i)    
		QuickSort(pData,i,right);   
}  
</script> 
</head> 
<body> 
<div id="num"></div> 
<button id="bubbleSort">bubbleSort</button> 
<button id="QuickSort">QuickSort</button> 
<input id="numb" value="40"/> 
<button id="random">init</button> 
step:<span id="step"></span> 
<div id="content"></div> 
</body> 
</html>
分享到:
评论

相关推荐

    使用 JavaScript 排序数据并渲染到页面+源码+demo演示

    使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+demo演示 使用 JavaScript 排序数据并渲染到页面+源码+...

    拖动排序demo

    在这个"拖动排序demo"中,我们可以探究如何实现这样的功能,特别是在编程领域,如前端开发中的JavaScript、HTML和CSS,或者是移动端的Android或iOS开发。 在前端开发中,实现拖动排序通常涉及以下关键步骤: 1. **...

    dragsort图片拖动排序demo

    总的来说,"dragsort图片拖动排序demo"是一个实用的教学示例,有助于前端开发者学习如何利用`dragsort.js`创建交互式的图片排序功能。这个功能可以广泛应用于相册应用、画廊展示或者任何需要用户自定义顺序的场景。...

    JS拖拽DEMO大全

    在本"JS拖拽DEMO大全"中,我们将会探讨一系列关于JavaScript实现拖放功能的核心知识点。 首先,我们需要了解HTML5的拖放API(Drag and Drop API),这是现代浏览器支持的原生拖放功能。通过这个API,开发者可以方便...

    js json 重新随机重组排序方法demo

    下面将详细介绍如何实现"js json 重新随机重组排序方法"。 首先,我们需要了解JSON的基本结构。JSON对象通常包含键值对,而键值对中的值可能是一个字符串、数字、布尔值、数组或其他JSON对象。当我们要对JSON中的...

    jQuery插件集之(table排序)各种排序+Demo

    综上所述,"jQuery插件集之(table排序)各种排序+Demo"是一个强大且实用的工具,它不仅包含了基本的排序功能,还能适应各种数据类型和用户需求。通过深入理解其工作原理和使用方式,开发者可以轻松地提升HTML表格的...

    使用sortable进行拖动排序的demo

    在"使用Sortable进行拖动排序的demo"中,我们了解了如何利用Sortable库创建一个可拖动排序的列表,并在排序完成后获取新的顺序。这个功能在许多Web应用中都有广泛的应用,如任务管理、图片库、文件管理等。通过掌握...

    jquery.tablesorter.js +排序、分页、ajax demo

    本文将围绕"jquery.tablesorter.js +排序、分页、ajax demo"这一主题,深入探讨tablesorter插件的核心功能和实际运用。 首先,tablesorter是一个强大的jQuery插件,由Christian Bach开发,主要用于表格的排序功能。...

    jqGrid demo (完整版)

    在 demo 中,你可以看到如何通过 JavaScript 代码配置这些选项。 5. **CSS 样式** "css" 文件夹包含 jqGrid 的样式文件,它们控制着表格的外观,如单元格样式、表头样式、分页样式等。开发者可以根据需求修改 CSS ...

    二叉树排序算法及demo

    通过阅读和理解这些代码,你可以深入学习二叉树排序算法,并将其应用到实际的JavaScript项目中。 总结来说,二叉树排序算法是一种高效且灵活的排序方法,特别适合在数据量较大且需要频繁插入和查找的场景下使用。...

    jsDemo.rar

    "jsDemo.rar" 文件很可能是包含了一个使用 Element UI 开发的 JavaScript 示例项目的压缩包。这个项目可能包含了 HTML、CSS 和 JavaScript 文件,展示了如何在实际开发中应用 Element UI。 在 Element UI 中,你...

    JavaScript_基于排序描述符对数组进行排序的_Demo_BlobSortDemo.zip

    JavaScript_基于排序描述符对数组进行排序的_Demo_BlobSortDemo

    bootstrap树形表格js插件demo

    在本示例中,我们关注的是“bootstrap树形表格js插件demo”。这个插件允许我们在Bootstrap表格中展示层次结构的数据,这对于显示具有父子关系或者分类信息的数据非常有用。 首先,`treeTable.html`是演示如何使用该...

    js 瀑布流Demo

    在压缩包中的"瀑布流Demo"可能包含了HTML、CSS和JavaScript文件,你可以通过查看和学习这些文件了解瀑布流布局的具体实现细节。这个小例子可能包含了一些基础的计算和布局逻辑,适合初学者理解和实践瀑布流布局的...

    table数据排序-demo...........

    1. 原生JavaScript排序: JavaScript提供了`Array.prototype.sort()`方法,可以直接对数组进行排序。例如,对一个包含对象的数组按某个属性排序: ```javascript let data = [ {name: '张三', age: 25}, {name...

    integralShopList.js_DEMO_

    7. **数据结构与排序**:商品列表可能需要根据不同的分类进行排序,这涉及到JavaScript中的数组操作,如`sort()`函数。 8. **错误处理**:在请求数据或处理用户输入时,良好的错误处理机制是必要的,这通常涉及try-...

    js实现表格排序

    用js实现对表格的排序,小demo一个,希望对新手们有点帮助

    ie可用的astar算法javascript demo

    总之,"ie可用的astar算法javascript demo"是一个在JavaScript中实现的A*搜索算法,它考虑了在Internet Explorer浏览器下的兼容性,能够有效地寻找两点之间的最短路径。这个实现涉及到了数据结构、启发式函数设计...

    权限树tree-multiselect.js-demo

    总之,"tree-multiselect.js-demo"项目展示了一种强大的、适用于权限管理的动态权限树实现,其核心在于JavaScript的递归和数据绑定技术,以及对用户体验和性能的考虑。通过深入理解和实践这个示例,开发者可以提升在...

    JS在线工具箱demo

    【JS在线工具箱demo】是一个基于JavaScript技术实现的网页应用,旨在提供一种便捷的在线工具箱,用户可以像在客户端应用程序中那样拖动元素并绘制流程图。这个工具箱的特色在于其交互性和灵活性,使得用户能够在网页...

Global site tag (gtag.js) - Google Analytics