JS中冒泡排序,选择排序,快速排序
2018-08-17 21:10
246 查看
var arr = [1,4,2,9,7,6,5,4,7,5];
// 冒泡排序(通俗的说就是j 和 j+1打,谁赢了谁去后面)
for(var i = 1;i<arr.length;i++){
for(var j = 0;j<arr.length - i;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
// 选择排序(通俗的说就是j 和i打,谁赢了谁去前面) for(var i = 0;i<arr.length-1;i++){ for(var j = i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ var temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } console.log(arr);
//快速排序: 取数组中间下标的值,再将其他值与该值相比,大于加入右数组,小于加入左数组,递归调用 function quick(arr){ // 递归出口条件 if(arr.length<=1){return arr;} // 获取中间下标 var centerindex = arr.length%2==0?arr.length/2:(arr.length+1)/2; // 获取中间下标对应的值 var centerElement = arr[centerindex]; // 创建左右数组 var left = []; var right = []; // 循环判断,若元素大于中间下表对应的值则加入左数组,反之加入右数组 for(var i = 0;i<arr.length;i++){ if((i!=centerindex)&&(arr[i]>=centerElement)){ right.push(arr[i]); } if((i!=centerindex)&&(arr[i]<centerElement)){ left.push(arr[i]); } } //递归调用该函数 return quick(left).concat(centerElement).concat(quick(right)); } console.log(quick(arr));
// 选择排序(通俗的说就是j 和i打,谁赢了谁去前面) for(var i = 0;i<arr.length-1;i++){ for(var j = i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ var temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } } console.log(arr);
//快速排序: 取数组中间下标的值,再将其他值与该值相比,大于加入右数组,小于加入左数组,递归调用 function quick(arr){ // 递归出口条件 if(arr.length<=1){return arr;} // 获取中间下标 var centerindex = arr.length%2==0?arr.length/2:(arr.length+1)/2; // 获取中间下标对应的值 var centerElement = arr[centerindex]; // 创建左右数组 var left = []; var right = []; // 循环判断,若元素大于中间下表对应的值则加入左数组,反之加入右数组 for(var i = 0;i<arr.length;i++){ if((i!=centerindex)&&(arr[i]>=centerElement)){ right.push(arr[i]); } if((i!=centerindex)&&(arr[i]<centerElement)){ left.push(arr[i]); } } //递归调用该函数 return quick(left).concat(centerElement).concat(quick(right)); } console.log(quick(arr));
相关文章推荐
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- 冒泡排序、选择排序、快速排序、插入排序(希尔排序)、堆排序(十大排序)
- 冒泡排序 选择排序 快速排序
- c语言排序算法(所有的都是升序,冒泡排序、插入排序、快速排序、选择排序、希尔排序、堆排序 )
- js实现常见的三种排序方法(冒泡排序、快速排序、归并排序)
- 直通BAT-排序1(冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序)
- 几种基本排序的实现:选择排序,冒泡排序,插入排序,堆排序,快速排序,归并排序
- 冒泡排序,插入排序,选择排序和快速排序-C语言
- 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 几种常见的排序算法,选择排序,冒泡排序,希尔排序,堆排序,快速排序,归并排序,基数排序的比较
- 排序方法整理Java - 冒泡排序、选择排序、插入排序、快速排序
- 常见排序之快速排序、冒泡排序、插入排序、选择排序
- 快速排序,冒泡排序,直接选择排序的算法
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序
- 常用排序算法(包括:选择排序,堆排序,冒泡排序,选择排序,快速排序,归并排序)
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- oc中的排序 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序)