试着写了写,但对输出方式不太熟,所以注释部分的没能成功(我猜测是数据被覆盖了,所以最后运行结果都是‘6‘),或许不能用innerHTML来进行输出,暂时不管了,改天再研究研究JavaScript的输出方式。
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 </head> 6 7 <body> 8 <!--p id = "x"></p--> 9 <button onclick = "insertSort()">插入排序</button> 10 <!--p id = "y"></p--> 11 <button onclick = "selectionSort()">选择排序</button> 12 <!--p id = "z"></p--> 13 <button onclick = "bubbleSort()">冒泡排序</button> 14 15 <script> 16 function insertSort() { // 插排法 17 //var X = document.getElementById("x"); 18 var temp; 19 array = [5, 6, 3, 1, 2, 4]; 20 21 for(var i = 1; i < array.length; i++) { 22 temp = array[i]; 23 var j = i - 1; 24 while(j >= 0 && array[j] > temp) { 25 array[j + 1] = array[j]; 26 j--; 27 } 28 array[j + 1] = temp; 29 } 30 for(i = 0; i < array.length; i++) { 31 //X.innerHTML = array[i] + ‘ ‘; 32 document.write(array[i] + ‘ ‘); 33 } 34 } 35 36 function selectionSort() { // 选择排序 37 //var Y = document.getElementById("y"); 38 var temp; 39 array = [5, 6, 3, 1, 2, 4]; 40 41 for(var i = 0; i < array.length; i++) { 42 for(var j = i + 1; j < array.length; j++) { 43 if(array[i] > array[j]) 44 { 45 temp = array[i]; 46 array[i] = array[j]; 47 array[j] = temp; 48 } 49 } 50 } 51 for(i = 0; i < array.length; i++) { 52 //Y.innerHTML = array[i] + ‘ ‘; 53 document.write(array[i] + ‘ ‘); 54 } 55 } 56 57 function bubbleSort() { 58 //var Z = document.getElementById("z"); 59 var temp; 60 array = [5, 6, 3, 1, 2, 4]; 61 62 for(var i = 1; i < array.length; i++) { 63 for(var j = 0; j < array.length - i; j++) { 64 if(array[j] > array[j + 1]) 65 { 66 temp = array[j + 1]; 67 array[j + 1] = array[j]; 68 array[j] = temp; 69 } 70 } 71 } 72 for(i = 0; i < array.length; i++) { 73 //Z.innerHTML = array[i] + ‘ ‘; 74 document.write(array[i] + ‘ ‘); 75 } 76 } 77 </script> 78 79 </body> 80 </html>
写出了C的感觉...算法就是基本算法,并不难,仅为了了解一点JS的基础语法/排序算法。
时间: 2024-11-05 14:38:10