欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快速排序的实现

程序员文章站 2024-01-20 19:54:04
...

快速排序的实现

 快速排序是1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法。分治法的思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。

一种快速排序的简单实现:

template<class T>
void quick_sort(T array[],int low,int high){
    int i,j,pivot;
    if(low<high){
        pivot=array[low];
        i=low;
        j=high;
        while(i<j){
            while(i<j&&array[j]>=pivot])
                j--;
            if(i<j)
               array[i++]=array[j];
            while(i<j&&array[i]<=pivot)
                i++;
            if(i<j)
              array[j--]=a[i];
        }
       a[i]=pivot;
       quick_sort(a,low,i-1);
       quick_sort(a,i+1,high);
    }
}

 

这里pivot代表基准值,它的初始值为a[low],经过依次循环后,就确定了a[i]

上一篇: js小结

下一篇: sublime里使用terminal