javascript如何用数组实现冒泡排序的算法,不用sort函数怎么实现?
var examplearr=[8,94,15,88,55,76,21,39];
function sortarr(arr){
for(i=0;i<arr.length-1;i++){
for(j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
sortarr(examplearr);
console.log(examplearr);
/*原生方法。。快速排序*/
//1、找一个基准点
//2、建立两个数组,分别存储左边右边的数组
//3、利用递归,进行下次比较
function quick_sort (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 quick_sort(left).concat([numValue],quick_sort(right));//连接
}
alert(quick_sort([12,5,6,37,22,40]))
function paoSort( $arr ){
$len = count($arr);
for ($i = 1; $i< $len ; $i++){
for ($k = 0; $k < $len - $i ; $k++){
if($arr[$k] < $arr[$k+1]){
$tmp = $arr[$k];
$arr[$k] = $arr[$k+1];
$arr[$k +1] = $tmp;
}
}
}
return $arr;
}
/**
* [冒泡排序]
* @param {array} [乱序数组]
* @return {array} [顺序/倒序数组]
*/
function bubble(arry) {
let len = arry.length - 1
let temp
for (let i = 0; i < len; i++) {
for (let j = 0; j < len; j++) {
if (arry[j] > arry[j + 1]) {
temp = arry[j]
arry[j] = arry[j + 1]
arry[j + 1] = temp
}
}
}
return arry
}