//sort实现排序 按照字符串排序的
//按数字排序可以加入一个回调函数
var arr2 = [2,1,34,56,78,98,7,34];
console.log(arr2.sort(compare),'sort');
function compare(value1,value2){
if(value1<value2){
return -1
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
//冒泡排序 即通过两两比较最值放到最后一位 再缩小循环的范围
function bubbleSort(arr){
for(let forLength=arr.length-1; forLength>0;forLength--){
for(let i=0; i<forLength;i++){
if(arr[i]<arr[i+1]){
var mid = arr[i];
arr[i] = arr[i+1];
arr[i+1] = mid;
}
}
}
return arr;
}
var arr = [2,1,34,56,78,98,7,34];
console.log(bubbleSort(arr),'bubble');
/* 选择排序 */
function selectSort(arr){
for(let i=0;i<arr.length-1;i++){
//将每次用i循环出来的当做一个比较值 过和j值逐一比较,使得i值成为剩下元素的最大值或最小值
for(let j=i+1; j<arr.length-1;j++){
if(arr[i]<arr[j]){
var mid = arr[i];
arr[i] = arr[j];
arr[j] = mid;
}
}
}
return arr;
}
console.log(selectSort(arr),'select');
/* 快速排序 */
var arr1 = [2,1,34,56,78,98,7,34];
function quickSort(array){
if(array.length<2){
return array;
}
var left = [];
var right = [];
var point = array.shift();
for(let i=0;i<array.length;i++){
if(array[i]<point){
left.push(array[i]);
}else{
right.push(array[i]);
}
}
return quickSort(left).concat(point,quickSort(right));
}
console.log(quickSort(arr1),'quick')