Javascript排序实例

JavaScript排序的例子,如下代码:


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head> 
  4.  <title>www.cxybl.com</title> 
  5. <style type="text/css">  
  6. *{font-family:Arial, Helvetica, sans-serif} 
  7. .div1{  
  8. background-color:#35BDDB;  
  9. float:left;  
  10. margin-left:1px; 
  11. color:#fff; 
  12. vertical-align:middle; 
  13. font-size:12px; 
  14. .sorted{ 
  15.     background-color:#CFD0D2} 
  16. #content{ width:100%; height:601px; background-color:#222222; text-align:center; } 
  17. </style>  
  18. <script type="text/javascript" src="jquery-1.4.2.js"></script>  
  19. <script type="text/javascript">  
  20. var numbs = []; 
  21. var numbers = 40; 
  22. var divWidth = Math.floor(1000/numbers); 
  23. var ti = 1; 
  24. var step = 0; 
  25. var step1 = 0; 
  26. function init(){ 
  27.     step1 = 0; 
  28.     numbers = $("#numb").val(); 
  29.     if(isNaN(numbers)  Number(numbers) <= 0){ 
  30.         numbers = 40; 
  31.         $("#numb").val(40); 
  32.     } 
  33.     if(Number(numbers) > 500){ 
  34.         numbers = 500; 
  35.         $("#numb").val(500); 
  36.     } 
  37.     numbs = []; 
  38.     step = 0; 
  39.     ti = 1; 
  40.     $("#content").html(""); 
  41.     while(numbs.length < numbers){ 
  42.         var t = Math.floor(600*Math.random()); 
  43.         if(numbs.indexOf(t) < 0){ 
  44.             numbs.push(t); 
  45.         } 
  46.     } 
  47.     $("#step").html(""); 
  48.     $.each(numbs, function(i,n){ 
  49.         $("<div>").addClass("div1").css({width: (100/numbers - 0.1)+"%", height: n + "px", "margin-top": (600-n) + "px"}) 
  50.             .attr("id", n).appendTo($("#content")); 
  51.     }); 
  52.   
  53. $(function(){ 
  54.     init(); 
  55.     $("#random").click(init); 
  56.     $("#bubbleSort").click(function(){ 
  57.         $(":input").attr("disabled","disabled"); 
  58.         if(step1 != 0){ 
  59.             init(); 
  60.         } 
  61.         bubbleSort(); 
  62.     }); 
  63.     $("#QuickSort").click(function(){ 
  64.         $(":input").attr("disabled","disabled"); 
  65.         if(step1 != 0){ 
  66.             init(); 
  67.         } 
  68.         QuickSort(numbs, 0, numbs.length); 
  69.     }); 
  70. }); 
  71.   
  72. function bubbleSort(){ 
  73.     for(i = 0; i< numbs.length;i++){ 
  74.         for(j = i + 1;j<numbs.length;j++){ 
  75.             if(numbs[i] > numbs[j]){ 
  76.                 swap(numbs, i, j); 
  77.             } 
  78.         } 
  79.     } 
  80.   
  81. function swap(arrays, i, j){ 
  82.     var t = arrays[i]; 
  83.     var m = arrays[j]; 
  84.     arrays[i] = arrays[j]; 
  85.     arrays[j] = t; 
  86.     step1++; 
  87.     setTimeout("swapDiv($('#' + "+t+"), $('#' + "+m+"))", (ti++)*50); 
  88.   
  89. function swapDiv(div1, div2){ 
  90.     $(".div1").removeClass("sorted"); 
  91.     var tempDiv = $("<div>"); 
  92.     div1.after(tempDiv); 
  93.     div2.after(div1); 
  94.     tempDiv.after(div2); 
  95.     tempDiv.remove(); 
  96.     div1.addClass("sorted"); 
  97.     div2.addClass("sorted"); 
  98.     $("#step").html(++step); 
  99.      
  100.     if(step == step1){ 
  101.         $(":input").attr("disabled",""); 
  102.         $(".div1").removeClass("sorted"); 
  103.     } 
  104.   
  105. function QuickSort(pData, left, right){     
  106.     var i,j;    
  107.     var middle,temp;    
  108.     i = left;    
  109.     j = right;    
  110.     middle = pData[left];    
  111.     while(true){    
  112.         while((++i)<right-1 && pData[i]<middle);    
  113.         while((--j)>left && pData[j]>middle);    
  114.         if(i>=j)    
  115.             break;     
  116.         swap(pData, i, j); 
  117.     }    
  118.     swap(pData, left, j);   
  119.     if(left<j)     
  120.         QuickSort(pData,left,j);    
  121.     if(right>i)     
  122.         QuickSort(pData,i,right);    
  123. }   
  124. </script>  
  125. </head>  
  126. <body>  
  127. <div id="num"></div>  
  128. <button id="bubbleSort">bubbleSort</button>  
  129. <button id="QuickSort">QuickSort</button>  
  130. <input id="numb" value="40"/>  
  131. <button id="random">init</button>  
  132. step:<span id="step"></span>  
  133. <div id="content"></div>  
  134. </body>  
  135. </html> 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索排序
, numbers
, quicksort
, var
, cfd
, content
step
javascript经典实例、javascript项目实例、javascript 实例、javascript实例精通、javascript冒泡排序,以便于您获取更多的相关知识。

时间: 2024-10-06 15:25:55

Javascript排序实例的相关文章

javascript操作表格排序实例分析_javascript技巧

本文实例讲述了javascript操作表格排序的方法.分享给大家供大家参考.具体如下: 完整例子如下: <html> <head> <title>Table Sort Example</title> <script type="text/javascript"> //转换器,将列的字段类型转换为可以排序的类型:String,int,float function convert(sValue, sDataType) { swit

js表格排序实例分析

  篇文章主要介绍了js表格排序实例分析(支持int,float,date,string四种数据类型),涉及javascript常用的升序.降序及数据类型转换等相关技巧,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

JavaScript 经典实例日常收集整理(常用经典)_javascript技巧

跨浏览器添加事件 //跨浏览器添加事件 function addEvent(obj,type,fn){ if(obj.addEventListener){ obj.addEventListener(type,fn,false); }else if(obj.attachEvent){//IE obj.attchEvent('on'+type,fn); } } 跨浏览器移除事件 //跨浏览器移除事件 function removeEvent(obj,type,fn){ if(obj.removeEv

jQuery实现带分组数据的Table表头排序实例分析_jquery

本文实例讲述了jQuery实现带分组数据的Table表头排序.分享给大家供大家参考,具体如下: 如下图: 要求:点击表头排序时,"分组"及"分组明细"的数据层次关系不变 从网上找了一段常规的table排序,改了改,以满足"分组支持",贴在这里备份 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

JavaScript运算符实例详解

核心提示:JavaScript运算符实例详解 根据处理对象的数目: 单元运算符; 二元运算符; 三元运算符. 根据功能: 赋值运算符; = += -= *= /= %=(取余) 算术运算符; + - * / %(取余) ++(递增) --(递减) - 例1: 例2: <Script> var x = y = 3;  with (document) {      write("x = 3, y = 3 <br>");      write("若x = y

javascript排序函数实现数字排序

  这篇文章主要介绍了javascript排序函数实现数字排序的相关资料,附上示例,需要的朋友可以参考下 javascript排序函数实现数字排序 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 <script> function SortNumber(obj,func) //定义通用排序函数 { //参数验证,

Javascript排序算法之合并排序的2个例子介绍

 这篇文章主要介绍了Javascript排序算法之合并排序(归并排序)的2个例子,需要的朋友可以参考下 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用.   归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列.   归并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(

JavaScript排序算法动画演示效果的实现方法_javascript技巧

之前在知乎看到有人在问 自己写了一个冒泡排序算法如何用HTML,CSS,JavaScript展现出来排序过程.   感觉这个问题还挺有意思 .前些时间就来写了一个.这里记录一下实现过程. 基本的思想是把排序每一步的时候每个数据的值用DOM结构表达出来. 问题一:如何将JavaScript排序的一步步进程展现出来? 我试过的几种思路: 1.让JavaScript暂停下来,慢下来. JavaScript排序是很快的,要我们肉眼能看到它的实现过程,我首先想到的是让排序慢下来. 排序的每一个循环都让它停

javascript排序函数实现数字排序_javascript技巧

javascript排序函数实现数字排序 <script> function SortNumber(obj,func) //定义通用排序函数 { //参数验证,如果第一个参数不是数组或第二个参数不是函数则抛出异常 if(!(obj instanceof Array) || !(func instanceof Function)) { var e = new Error(); //生成错误信息 e.number = 100000; //定义错误号 e.message = "参数无效&q