首页 > 编程语言 > 详细

排序算法

时间:2020-03-05 14:03:22      阅读:54      评论:0      收藏:0      [点我收藏+]

1.快速排序:

思路:找到数组中间的元素,把它单拎出来,然后从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))
}

2.冒泡排序

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!