网页编程 - 关于字符的排序
<style> fieldset { font-size:12px; padding:10px; width:80%; margin:auto; } input { font-size:12px; font-family:Tahoma; } </style> <title>排序</title> <h3 align="center">排序</h3> <fieldset> <legend>插入排序</legend> <p><b>直接插入排序</b> 请输入一段要排序的字符,用半角逗号隔开 <input name=insert type=text size=100 value="g,v,u,f,p,o,i,a,t,j,e,l,k"> <br><input type=button value=" 排序 " onclick="alert(InsertSort(insert.value.split(',')));"> <p><b>希儿排序</b><br> <input name=Shell type=text size=100 value="g,v,u,f,p,o,i,a,t,j"> <br><input type=button value=" 排序 " onclick="alert(ShellSort(Shell.value.split(',')));"> </fieldset> <p> <fieldset> <legend>交换排序</legend> <b>冒泡排序</b><br> <input name=bubble type=text size=100 value="g,v,u,f,p,o,i,a,t,j,e,l,k"> <br><input type=button value=" 排序 " onclick="alert(BubbleSort(bubble.value.split(',')));"> <p><b>快速排序<br> </b> <input name=quick type=text size=100 value="3,1,5,4,6"> <br><input type=button value=" 排序 " onclick="alert(QuickSortDemo(quick.value.split(',')));"> </fieldset> <p> <fieldset> <legend>选择排序</legend> <b>直接选择排序</b><br> <input name=select1 type=text size=100 value="g,v,u,f,p,o,i,a,t,j,e,l,k"> <br><input type=button value=" 排序 " onclick="alert(SelectSort(select1.value.split(',')));"> <p>... ... </fieldset> <script> function InsertSort(arr) { //插入排序->直接插入法排序 var st = new Date(); var temp, j; for(var i=1; i<arr.length; i++) { if((arr[i]) < (arr[i-1])) { temp = arr[i]; j = i-1; do { arr[j+1] = arr[j]; j--; } while (j>-1 && (temp) < (arr[j])); arr[j+1] = temp; }//endif } status = (new Date() - st) + ' ms'; return arr; } function ShellSort(arr) { //插入排序->希儿排序 var st = new Date(); var increment = arr.length; do { increment = (increment/3|0) + 1; arr = ShellPass(arr, increment); } while (increment > 1) status = (new Date() - st) + ' ms'; return arr; } function ShellPass(arr, d) { //希儿排序分段执行函数 var temp, j; for(var i=d; i<arr.length; i++) { if((arr[i]) < (arr[i-d])) { temp = arr[i]; j = i-d; do { arr[j+d] = arr[j]; j = j-d; } while (j>-1 && (temp) < (arr[j])); arr[j+d] = temp; }//endif } return arr; } function BubbleSort(arr) { //交换排序->冒泡排序 var st = new Date(); var temp; var exchange; for(var i=0; i<arr.length; i++) { exchange = false; for(var j=arr.length-2; j>=i; j--) { if((arr[j+1]) < (arr[j])) { temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; exchange = true; } } if(!exchange) break; } status = (new Date() - st) + ' ms'; return arr; } function QuickSortDemo(arr) { var st = new Date(); var result = QuickSort(arr); status = (new Date() - st) + ' ms'; return result; } function QuickSort(arr) { //交换排序->快速排序 if (arguments.length>1) { var low = arguments[1]; var high = arguments[2]; } else { var low = 0; var high = arr.length-1; } if(low < high){ // function Partition var i = low; var j = high; var pivot = arr[i]; while(i<j) { while(i<j && arr[j]>=pivot) j--; if(i<j) arr[i++] = arr[j]; while(i<j && arr[i]<=pivot) i++; if(i<j) arr[j--] = arr[i]; }//endwhile arr[i] = pivot; // end function var pivotpos = i; //Partition(arr,low,high); QuickSort(arr, low, pivotpos-1); QuickSort(arr, pivotpos+1, high); } else return; return arr; } /*function Partition(arr, i, j) { //快速排序, 对待排序的数组进行划分 var pivot = arr[i]; while(i<j) { while(arr[j]>=pivot) j--; if(i<j) arr[i++] = arr[j]; while(arr[i]<=pivot) i++; if(i<j) arr[j--] = arr[i]; } arr[i] = pivot; return arr; }*/ function SelectSort(arr) { //选择排序->直接选择排序 var st = new Date(); var temp; for(var i=0; i<arr.length; i++) { var k = i; for(var j=i+1; j<arr.length; j++) { if((arr[j]) < (arr[k])) k = j; } if (k != i){ temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } status = (new Date() - st) + ' ms'; return arr; } function unicode(str) {//求字符串的unicode码 var uni=0; for(var i=0; i<str.length; i++){ uni += str.charCodeAt(i)/6553.5 * Math.pow(10, str.length-i); } return uni; } </script>
本站
说明
网页版
站长
简介
微博
日记
照片
同学
资料
文章
电脑
编程
维护
链接
功能
电话
短信
邮件
登录