三种排序方式
来源:互联网 发布:js点击空白处触发事件 编辑:程序博客网 时间:2024/06/05 05:34
<!DOCTYPE html><html><head> <title></title></head><body><script type="text/javascript">//选择排序 function xuanzepaixu() { var min/*最小项的索引*/, tmp; for (var out = 0; out < a.length - 1; out++) {//比较的次数是length-1 min = out; for (var inner = out + 1; inner < a.length; inner++) {//这里是a.length,不是a.lenght-1,因为后者会导致右数第2项没法参与排序。 if (a[inner] < a[min]) { min = inner; } //将最小的项移动到左侧 tmp = a[out]; a[out] = a[min] a[min] = tmp; } } alert(a); }; var a = [66, 53, 11, 5, 4, 3, 2, 1]; xuanzepaixu(a)//冒泡排序 function bubbleSort() { for (var i = 0; i < a.length - 1; i++) {//比较的次数是length-1 for (var j = 0; j < a.length - 1 - i; j++) { if (a[j] > a[j + 1]) { var tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp; } } } alert(a); }; var a = [66, 53, 11, 5, 4, 3, 2, 1]; bubbleSort(a)//快速排序 function quickSort(arr){ if(arr.length<=1){ return arr;//如果数组只有一个数,就直接返回; } var num = Math.floor(arr.length/2);//找到中间数的索引值,如果是浮点数,则向下取整 var numValue = arr.splice(num,1);//找到中间数的值 var left = []; var right = []; for(var i=0;i<arr.length;i++){ if(arr[i]<numValue){ left.push(arr[i]);//基准点的左边的数传到左边数组 } else{ right.push(arr[i]);//基准点的右边的数传到右边数组 } } return quickSort(left).concat([numValue],quickSort(right));//递归不断重复比较}alert(quickSort([32,45,37,16,2,87]));//弹出“2,16,32,37,45,87”</script></body></html>
0 0
- 三种排序方式
- list排序的三种实现方式
- Repeater排序的三种实现方式
- list排序的三种实现方式
- Java中的三种排序方式
- 三种简单排序方式的总结
- 数组三种方式排序实现
- 三种排序方式 (C++实现)
- 快速排序的三种不同的实现方式。
- c# list排序的三种实现方式
- c# list排序的三种实现方式
- python实现堆排序的三种方式
- c# list排序的三种实现方式
- c# list排序的三种实现方式
- c# list排序的三种实现方式
- c# list排序的三种实现方式
- 排序的三种方式(冒泡,插入,和选择)
- c# list排序的三种实现方式
- spring schedule定时任务
- notification的简单使用
- Item 22:数据成员应声明为私有 Effective C++笔记
- 初探Qt Opengl【1】
- IMX6Solo启动流程 外传-新建一条Uboot命令
- 三种排序方式
- !Important的使用及测试
- @media css样式
- 1094. The Largest Generation (25)
- Copy + Paste (Clipboard) Issues / Not Working?
- 无线路由器QoS设置——连接数限制
- IOS第三方代码收集
- 可以接收链路层MAC帧的原始套接字
- CCF 201412-4最优灌溉(MST)