思路:找到数组中间的元素,把它单拎出来,然后从0开始判断数组中的元素比该基准元素大还是小,小的存左边,大的存右边,然后如此反复递归,得出结果。
function quickSort(arr){
if(arr.length<=1){
return arr;
}
var mid=arr.splice(Math.floor(arr.length/2),1);
var leftArr=[];
var rightArr=[];
for(var i=0;i<arr.length;i++){
if(parseInt(arr[i])<=mid){
leftArr.push(arr[i]);
}
else{
reightArr.push(arr[i]);
}
}
return quickSort(leftArr).concat(mid,quickSort(rightArr))
}
1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
function?quickSort(arr){
var?temp;
????for(var?i=0;i<arr.length-1;i++){
????????for(var?j=0;j<arr.length-1-i;j++){
????????????if(arr[j]>arr[j+1]){
????????????????temp=arr[j];
????????????????arr[j]=arr[j+1];
????????????????arr[j+1]=temp;
????????????}
????????}
????}
???return?arr;
}
console.log(quickSort([4,8,2,6,47,7]))
原文:https://www.cnblogs.com/hff-syt/p/12419753.html