数组排序
1.冒泡排序
function sort(arr){
for(var i = 0;i<arr.length-1;i++){
for(var j =0; j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
2.选择排序
function selectSort(arr) {
for(var i = 0; i < arr.length; i++) { //遍历数组
var minIndex = i; //i是数组最小值的索引
for(j = i + 1; j < arr.length; j++) {
if(arr[minIndex] > arr[j]) {
minIndex = j;
}
}
if(i != minIndex) { //假设的刚好就是最小值。
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
return arr;
}
3.快速排序
思路:获取数组的中间值,截取出来
遍历数组,用数组的每一项去和中间值比较,比较的结果分别放在两个数组里面
递归:将分隔到左右的两个数组在排序,知道数组的长度等于1
将结果通过concat进行连接
function quickSort(array){
if(Array.isArray(array)){
if(array.length<=1){
return array;
}//递归一定要写初始值
var minIndex = Math.floor(array.length/2);//取出数组中间值的下标
var minValue = array.splice(minIndex,1)[0];//通过下标把数组的中间值截取出来
var left = [];//定义一个新数组,用来存放比中间值小的值
var right = [];//定义一个新数组,用来存放比中间值大的值
for(var i = 0;i<array.length;i++){
if(array[i]<minValue){
left.push(array[i]);
}else{
right.push(array[i]);
}
}
return quickSort(left).concat(minValue,quickSort(right));
}else{
alert("好好写");
}
}
posted on 2017-11-30 19:38 Dishonestman 阅读(97) 评论(0) 编辑 收藏 举报