Home  >  Article  >  Web Front-end  >  Js quick sort method example

Js quick sort method example

小云云
小云云Original
2018-02-26 13:55:092238browse


Quick sorting is mainly divided into three parts: 1. Select a pivot (pivot) 2. All elements smaller than the pivot value are placed in front of the pivot, and all elements larger than the pivot value are placed in front of the pivot. Place behind the base (the same number can go to either side). After this partition exits, the base is in the middle of the sequence. This is called a partition operation; 3. Recursively sort the subarray of elements smaller than the base value and the subarray of elements greater than the base value; the bottom case of recursion is when the size of the array is zero or one, that is, It's just that it's always been sorted. Although it continues to recurse, this algorithm will always exit, because in each iteration (iteration), it will move at least one element to its final position.

function quickSort(arr) {   
if (arr.length <= 1) { return arr } console.log("原数组是:" + arr)   
var pivotIndex = Math.floor(arr.length / 2)   
var pivot = arr.splice(pivotIndex, 1)[0]  
var left = []   
var right = []
 console.log("将中介提取出来后数组是:" + arr)   
for (var i = 0 ; i < arr.length ; i++){ 
console.log("此刻中介是:" + pivot + "当前元素是:" + arr[i])    
 if (arr[i] < pivot) {      
 left.push(arr[i]) console.log("移动" + arr[i] + "到左边")    
 } else {      
 right.push(arr[i]) console.log("移动" + arr[i] + "到右边")    
 }  
 }  
return quickSort(left).concat([pivot], quickSort(right)) } 
var nums = [2,3,4,3,1,5,7,122,341,-1] 
console.log(quickSort(nums))

Second method:

function quickSort(arr) {   
if (arr.length <= 1) { return arr } console.log("原数组是:" + arr)   
var pivotIndex = Math.floor(arr.length / 2)   
var pivot = arr.splice(pivotIndex, 1)[0]  
var left = []   
var right = []
 console.log("将中介提取出来后数组是:" + arr)   
for (var i = 0 ; i < arr.length ; i++){ 
console.log("此刻中介是:" + pivot + "当前元素是:" + arr[i])    
 if (arr[i] < pivot) {      
 left.push(arr[i]) console.log("移动" + arr[i] + "到左边")    
 } else {      
 right.push(arr[i]) console.log("移动" + arr[i] + "到右边")    
 }  
 }  
return quickSort(left).concat([pivot], quickSort(right)) } 
var nums = [2,3,4,3,1,5,7,122,341,-1] 
console.log(quickSort(nums))

Related recommendations:

JavaScript to implement quick sort analysis

PHP Example of Implementing Quick Sorting Method

#php Example of Implementing Quick Sorting Algorithm for Two-Dimensional Arrays

The above is the detailed content of Js quick sort method example. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn