js快速排序与冒泡排序
1.快速排序
快速排序就是首先取一组数据的第一个数作为中间值,然后遍历数据,将比中间值小的数放在其左边,将比中间值大的数放在右边,这就进行了第一次的排序,随后将左边的数据与右边的
数据再一次利用此方法进行排序,直到最后只剩下一个数据为止,我们可以采用递归的思想进行循环调用得到最终的结果。
2.快速排序代码实现
function quick(arr){
if(arr.length<=1)
{
return arr;
}
var left = [];
var right = [];
var mid = arr[0];
for(var i = 1;i<arr.length;i++)
{
arr[i] < mid ? left.push(arr[i]) : right.push(arr[i]);
}
return quick(left).concat([mid],quick(right));
}
var arr = [1,5,9,6,3,4,8,7]
console.log(quick(arr));
console.log(arr.join());
3.选择排序
选择排序的思想是经过n-1趟的比较,每一趟得到一个最大或者最小的值放在末尾,此时将需要比较的数据减少一个,循环反复,最后得到最终的数据。
4.代码实现
//选择排序
var arr = [8, 5, 9, 6, 3, 1]
function select(arr) {
for (var i = 0; i < arr.length; i++) {
var min = i
for (var j = i + 1; j < arr.length; j++) {
if (arr[j] > arr[min]) {
min = j
}
}
if (min != i) {
var temp = arr[min]
arr[min] = arr[i]
arr[i] = temp
}
}
return arr
}
console.log(select(arr));

浙公网安备 33010602011771号