排序算法有很多種,今天主要是介紹快速排序:
基本思路:
1、一個標準(standard): 用于數(shù)組的判斷;
2、兩個數(shù)組,分別存放比標準小的和比標準大的元素;
3、采用遞歸的方法不斷的進行1、2操作;
4、最后采用數(shù)組的concat()方法進行合并。
代碼展示:?
var quickSort = function (arr){
? ? ? ? if(arr.length <= 1){
? ? ? ? ? ? ? ?return arr;
? ? ? ? ?}
? ? ? ? //定義一個比較的基準
? ? ? ? var standard = arr.splice(0,1)[0];
? ? ? ? ?//定義兩個數(shù)組分別存放比標準小的元素和比標準大的元素
? ? ? ? var left = [];
? ? ? ? ?var right = [];
? ? ? ? ?//循環(huán)進行數(shù)組中所有元素的判斷
? ? ? ? ?for(var i = 0;i < arr.length;i++){
? ? ? ? ? ? ? ?if(standard <= arr[i]){
? ? ? ? ? ? ? ? ? ? ? ? ?right.push(arr[i]);
? ? ? ? ? ? ? ?}else {
? ? ? ? ? ? ? ? ? ? ? ? left.push(arr[i])
? ? ? ? ? ? ? ?}
? ? ? ? ?}
? ? ? ? ?//此處采用遞歸進行判斷,最后再進行合并
? ? ? ? ?return quickSort(left).concat(standard,quickSort(right));
}