javascript的冒泡排序, 快速排序, 选择排序, 插入排序
2017-03-24 16:32
781 查看
冒泡排序, 最经典的排序, 把比较大的数字往后放, 和选择排序恰恰相反:
javascript实现的快速排序, 选取数组的第一个为中间值, 然后把小于中间值的元素排到数组的左边, 把大于中间值的元素排到数据右边, 充分利用二分法, 排序效率非常高:
JS实现插入排序:
javascript中的选择排序, 寻找数组中的最小元素 , 让他与数组中的第一个元素互换, 然后在剩余的数组中找到最小的元素, 让他与第二个元素互换, 依次类推, 就是选择排序的逻辑:
EOF————
作者: NONO
出处:http://www.cnblogs.com/diligenceday/
QQ:287101329
微信:18101055830
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> function sort(elements){ for(var i=0;i<elements.length-1;i++){ for(var j=0;j<elements.length-1;j++){ if(elements[j]>elements[j+1]){ var swap=elements[j]; elements[j]=elements[j+1]; elements[j+1]=swap; } } } } var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8]; console.log('before: ' + elements); sort(elements); console.log(' after: ' + elements); </script> </body> </html>
javascript实现的快速排序, 选取数组的第一个为中间值, 然后把小于中间值的元素排到数组的左边, 把大于中间值的元素排到数据右边, 充分利用二分法, 排序效率非常高:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>quick sort</title> </head> <body> <script> var arr = [5,2,9,8,4,10,8]; function quick(arr) { if(arr.length<=1) { return arr; } //指定第一个元素为中间元素 var val = arr[0]; arr.splice(0,1); var left = [], right = []; for(var i=0, len = arr.length ; i<len; i++) { if(arr[i]<val) { left.push(arr[i]); }else if(arr[i]>val) { right.push(arr[i]); }else{ left.push(arr[i]); } } return [].concat(quick(left),val,quick(right)); } console.log(quick(arr)); </script> </body> </html>
JS实现插入排序:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>insert</title> </head> <body> <script> var arr = [5,2,9,8,4,10,1,3]; function sort(arr) { //假设第一个为有序的, 除了第一个以外全部是无序的; for(var i=1; i<arr.length; i++) { if(arr[i] < arr[i-1]) { var val = arr[i]; arr[i] = arr[i-1]; var j = i-1; while(val<arr[j]&&j>=0) { arr[j+1] = arr[j]; j--; } arr[j+1] = val; } } return arr; }; console.log( sort(arr) ); </script> </body> </html>
javascript中的选择排序, 寻找数组中的最小元素 , 让他与数组中的第一个元素互换, 然后在剩余的数组中找到最小的元素, 让他与第二个元素互换, 依次类推, 就是选择排序的逻辑:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>select sort</title> </head> <body> <script> var arr = [5,2,9,8,4,10,1,3,3]; function sort(arr) { for(var i=0; i<arr.length-1; i++) { for(var j=i; j<arr.length; j++) { if(arr[j]<arr[i]) { var val = arr[i]; arr[i] = arr[j]; arr[j] = val; } } } return arr; }; console.log( sort(arr) ); </script> </body> </html>
EOF————
作者: NONO
出处:http://www.cnblogs.com/diligenceday/
QQ:287101329
微信:18101055830
相关文章推荐
- 内排序(插入排序、冒泡排序、选择排序、shell排序、快速排序、归并排序、堆排序)
- 元素排序几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序
- 插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序
- (一)Java实现排序,选择排序,快速排序,冒泡排序,插入排序
- Java分别实现冒泡排序、插入排序、快速排序、选择排序、交换排序
- 【算法】希尔排序,快速排序,选择排序,插入排序,冒泡排序
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 冒泡排序,选择排序,快速排序,插入排序,折半选择排序
- 冒泡排序,快速排序,归并排序,选择排序,插入排序,堆排序
- C#实现所有经典排序算法(选择排序,冒泡排序,快速排序,插入排序,希尔排序)
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- Javascript实现三种排序:冒泡排序、选择排序、插入排序
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- 冒泡排序、快速排序、选择排序、插入排序、shell排序C代码
- 各种排序算法总结----基数排序、归并排序、插入排序、冒泡排序、选择排序、快速排序、堆排序、希尔排序
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)
- JavaScript实现冒泡排序、快速排序、插入排序
- 冒泡排序、插入排序、快速排序、选择排序