本文主要和大家分享js冒泡排序与快速排序实详解,希望能帮助到大家。
var array = [7, 8, 6, 12, 87, 35, 1, 48, 56, 12, 48, 69, 12, 12, 12, 103, 15, 6, 88, 24, 26, 25, 9, 6];
//冒泡排序
function bubblesort(arr){
var len = arr.length;
for(var i=0; i<len; i++){
var len_j = len - i - 1;
for(var j=0; j<len_j; j++){
if(arr[j] > arr[j+1]){
arr[j] = arr[j] ^ arr[j+1];
arr[j+1] = arr[j] ^ arr[j+1];
arr[j] = arr[j] ^ arr[j+1];
}
}
}
}
bubblesort(array);
console.log(array); //[1, 6, 6, 6, 7, 8, 9, 12, 12, 12, 12, 12, 15, 24, 25, 26, 35, 48, 48, 56, 69, 87, 88, 103]
//快速排序
function quicksort(arr, low, high){
var statichigh = high, //获取最初始高位指针
val = arr[low], //把低位当做关键字
index = low; //关键字下标
if(low >= high){
return;
}
while(low < high){
//如果与关键字相同的,按比关键字大来排序
while(val <= arr[high]){
if(index != high){ //为避免匹配到本身时,错误的把高位下标减1,跳过循环
high--;
}else{
break;
}
}
//关键字与高位换位置
arr[index] = arr[high];
arr[high] = val;
index = high;
while(arr[low] < val){
low++;
}
//关键字与低位换位置
arr[index] = arr[low];
arr[low] = val;
index = low;
}
quicksort(arr, 0, index-1); //递归前半段
quicksort(arr, index+1, statichigh); //递归后半段
}
quicksort(array, 0, array.length-1);
console.log(array); //[1, 6, 6, 6, 7, 8, 9, 12, 12, 12, 12, 12, 15, 24, 25, 26, 35, 48, 48, 56, 69, 87, 88, 103]
相关推荐:
一个简单的js冒泡排序示例
js冒泡排序选择排序与插入排序实例分析
php冒泡,选择,插入和快速排序法算法详解
以上就是js冒泡排序与快速排序实详解的详细内容。