排序的方法:

//方法一:sort:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>数组排序</title> 6 <script> 7 var arr = [9,1,2,5,7,4,8,6,3,5]; 8 9 arr.sort(); 10 </script> 11 </head> 12 <body> 13 </body> 14 </html>
//方法二:选择排序法:
思想:每趟从待排序的记录中选出最小关键字,顺序放在已排序的记录序列末尾,直到所有排序结束为止。html
流程:(1)从待排序序列中,找到关键字最小的元素;算法
(2)若是最小元素不是待排序序列的第一个元素,将其和第一个元素互换;数组
(3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。ui
示意图:spa
代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>数组排序</title> 6 <script> 7 var arr = [9,1,2,5,7,4,8,6,3,5]; 8 9 function selectedSort(arr) { 10 for (var i = 0; i < arr.length; i++) { 11 for (var j = i + 1; j < arr.length; j++) { 12 if (arr[i] > arr[j]) { 13 var num = arr[i]; 14 arr[i] = arr[j]; 15 arr[j] = num; 16 } 17 } 18 //document.write(i+":"+arr+"<br>"); 19 } 20 } 21 22 </script> 23 </head> 24 <body> 25 </body> 26 </html>
//方法三:冒泡排序法:
思想:冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到彻底有序。3d
示意图:指针

代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>数组排序</title> 6 <script> 7 var arr = [9,3,1,4,2,7,8,6,5]; 8 9 function bubbleSort(arr) { 10 for (var i = arr.length - 1; i >= 0; i--) { 11 for (var j = 0; j < i; j++) { 12 if (arr[j] > arr[j + 1]) { 13 var num = arr[j]; 14 arr[j] = arr[j + 1]; 15 arr[j + 1] = num; 16 } 17 } 18 } 19 } 20 21 /*document.write("冒泡排序前:" + arr); 22 bubbleSort(arr); 23 document.write("冒泡排序后:" + arr);*/ 24 25 </script> 26 </head> 27 <body> 28 </body> 29 </html>
//方法四:快速排序法:
思想:经过一趟排序将要排序的数据分割成独立的两部分,其中一部分的全部数据都比另一部分的全部数据都要小,而后再按此方法对这两部分数据分别进行快速排序,整个排序过程能够递归进行,以此达到整个数据变成有序序列。code
流程:设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(一般选用数组的第一个数)做为关键数据,而后将全部比它小的数都放到它前面,全部比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变更。htm
示意图:blog
代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>数组排序</title> 6 <script> 7 var arr = [49,38,65,97,76,13,27,49]; 8 9 var start = 1 ; 10 function quicklySort(arr, left, right) { 11 if (left < right) { 12 var i = left; 13 var j = right; 14 var key = arr[left]; 15 console.log("*************************"); 16 document.write("第"+start+"趟快速排序前:" + arr+"<br>"); 17 18 while (j != i) { 19 console.log("初始时:key=", key, ",i=", i, ",j=", j); 20 21 while (j > i) { 22 if (arr[j] < key) { 23 //console.log("向前一次{i=",i,",j=",j,"}"); 24 var temp = arr[i]; 25 arr[i] = arr[j]; 26 arr[j] = temp; 27 //console.log("交换后:",arr); 28 break; 29 } 30 j--; 31 } 32 33 while (i < j) { 34 if (arr[i] > key) { 35 console.log("向后一次{i=", i, ",j=", j, "}"); 36 var temp = arr[i]; 37 arr[i] = arr[j]; 38 arr[j] = temp; 39 console.log("交换后:", arr); 40 break; 41 } 42 i++; 43 } 44 console.log("结束时:key=", key, ",i=", i, ",j=", j); 45 } 46 document.write("第"+start+"趟快速排序后:" + arr+"<br>"); 47 start++; 48 console.log("*************************"); 49 quicklySort(arr,left,i-1); 50 quicklySort(arr,i+1,right); 51 } 52 } 53 54 quicklySort(arr, 0, arr.length - 1); 55 56 57 </script> 58 </head> 59 <body> 60 </body> 61 </html>