Home > Web Front-end > JS Tutorial > body text

Detailed explanation of quick sort in JavaScript

韦小宝
Release: 2018-03-14 14:18:05
Original
1738 people have browsed it

This article talks about quick sorting in JavaScript. If you don’t know about quick sorting in JavaScript or are interested in quick sorting in JavaScript, then let’s take a look at this article. Well, let’s cut the nonsense and get to the point

Quick sort is another typical application of the divide-and-conquer idea in sorting algorithms. In essence, quick sort should be regarded as a recursivedivide and conquer method based on bubble sort.

The name of quick sort is simple and crude, because as soon as you hear this name, you will know the meaning of its existence, which is fast and efficient! It is one of the fastest sorting algorithms for processing big data. . Although the time complexity of Worst Case has reached O(n²), it is excellent and in most cases performs better than the sorting algorithm with an average time complexity of O(n log n). But why is this? ,I don't know either. . . Fortunately, my obsessive-compulsive disorder recurred. After checking a lot of information, I finally found a satisfactory answer on the "Algorithm Art and Informatics Competition":

The worst operating situation of quick sort is O(n²) , such as quick sorting of sequential numbers. But its amortized expected time is O(n log n), and the constant factor implicit in the O(n log n) notation is very small, which is much smaller than the merge sort whose complexity is stable and equal to O(n log n). Therefore, for most random number sequences with weak order, quick sort is always better than merge sort.

Quick sort animation demonstration

Detailed explanation of quick sort in JavaScript

Quick sort JavaScript code implementation:

function quickSort(arr, left, right) {  
    var len = arr.length,  
        partitionIndex,  
        left = typeof left != 'number' ? 0 : left,  
        right = typeof right != 'number' ? len - 1 : right;  
  
    if (left < right) {  
        partitionIndex = partition(arr, left, right);  
        quickSort(arr, left, partitionIndex-1);  
        quickSort(arr, partitionIndex+1, right);  
    }  
    return arr;}function partition(arr, left ,right) {     //分区操作  
    var pivot = left,                      //设定基准值(pivot)  
        index = pivot + 1;  
    for (var i = index; i <= right; i++) {  
        if (arr[i] < arr[pivot]) {  
            swap(arr, i, index);  
            index++;  
        }          
    }  
    swap(arr, pivot, index - 1);  
    return index-1;}function swap(arr, i, j) {  
    var temp = arr[i];  
    arr[i] = arr[j];  
    arr[j] = temp;}
Copy after login

The above is all the content of this article, if you If you don’t know much about it yet, you can easily master it if you can implement both sides yourself!

Related recommendations:

Js bubble sort and quick sort detailed explanation

The above is the detailed content of Detailed explanation of quick sort in JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template