冒泡排序不多说了直接上代码。
var array = [10, 20,9,8,79,65,100];
for(var i = 0; i < array.length -1; i++ ){
for( var j = 0;j < array.length - 1 -i; j++ ){
if ( array[j] > array[j + 1] ) {
var temp = array[i];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
console.log(array)
本质上来讲就是数字位置互换。通过比对数组之中数字的位置,对数据进行排序位置对调。用了双重for 循环。
然后下面说一下这个快速排序
快速排序的思想比较简单,整个排序过程只需要三步,
(1)在数据集之中,选择一个元素作为基准。
(2) 所有小于”基准的元素移到函数的左边“,所有大于”函数基准的元素移到函数右边“。
(3) 对于”基准“左边和右边的俩个子集,不断重复,第一步和第二步,直到所有子集只剩下一个元素为准。
上代码
var quickSort = function( arr ){
if (arr.length <= 1) {
return arr;
}
var privotIndex = Math.floor(arr.length / 2 )
var privot = arr.splice(privotIndex, 1)[0]
var left = []
var right = []
for (var i = 0; i < arr.length; i++ ) {
if ( arr[i] < privot ) {
left.push[arr[i]]
}else{
right.push[arr[i]]
}
}
return quickSort(left).concat([privot],quickSort(right))
}
最后使用一个递归的方式去不断重复这个数组完成排序
文章采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接。