js实现的冒泡排序、选择排序、插入排序、快速排序
2017-10-30 20:52
681 查看
function bubbleSort( arr ) { for( var i = 0;i < arr.length - 1;i++ ){ var judge = false; for( var j = 0;j < arr.length - 1 - i;j++ ){ if( arr[j] > arr[j+1] ){ var tmp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = tmp; judge = true; } } console.log( panduan ); if( !judge ){ break; } } return arr; } //选择排序 function selectSort( arr ) { for( var i = 0;i < arr.length - 1;i++ ){ var maxIndex = i; for( var j = i+1;j < arr.length;j++ ){ if( arr[j] > arr[maxIndex] ){ maxIndex = j; } } var tmp = arr[maxIndex]; arr[maxIndex] = arr[i]; arr[i] = tmp; } return arr; } //插入排序 function insertSort( arr ) { for( var i = 1;i < arr.length;i++ ) { var curValue = arr[i]; var preIndex = i - 1; while( preIndex >= 0 && arr[preIndex] < curValue ){ arr[preIndex + 1] = arr[preIndex]; preIndex --; } arr[preIndex+1] = curValue; } return arr; } //快速排序 function quickSort( arr ) { if( arr.length <= 1 ){ return arr; } var pivotIndex = Math.floor( arr.length / 2 ); var prvot = arr.splice( pivotIndex,1 )[0]; var left = []; var right = []; for(var i = 0;i < arr.length;i++ ){ if( arr[i] < prvot ){ left.push( arr[i] ); }else{ right.push( arr[i] ); } } return quickSort( left ).concat( [prvot], quickSort( right ) ); }
相关文章推荐
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- Go语言实现冒泡排序、选择排序、快速排序及插入排序的方法
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- php实现冒泡排序,选择排序,插入排序和快速排序
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- java实现冒泡排序,插入排序,选择排序,快速排序
- js实现基础的排序-冒泡排序、选择排序、插入排序
- JS实现冒泡排序,插入排序和快速排序并排序输出
- 最简单之Java实现冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序(转载请注明出处)
- 内部排序冒泡排序、插入排序、选择排序、快速排序的算法和PHP实现
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试
- 学习笔记:冒泡排序、插入排序、选择排序、快速排序的实现
- PHP实现插入排序,选择排序,冒泡排序和快速排序
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- java实现各种排序算法(包括冒泡排序,选择排序,插入排序,快速排序(简洁版))及性能测试
- 冒泡排序,直接选择排序,插入排序实现
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- Java实现冒泡排序、快速排序、选择排序、插入排序和归并排序
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序