快速排序算法和外部排序算法

快速排序採用的思想是分治思想,是在冒泡排序的基礎上進行的改進 
快速排序是找出一個元素(理論上能夠隨便找一個)做爲基準(pivot),而後對數組進行分區操做,使基準左邊元素的值都不大於基準值,基準右邊的元素值 都不小於基準值,如此做爲基準的元素調整到排序後的正確位置。遞歸快速排序,將其餘n-1個元素也調整到排序後的正確位置。最後每一個元素都是在排序後的正 確位置,排序完成。因此快速排序算法的核心算法是分區操做,即如何調整基準的位置以及調整返回基準的最終位置以便分治遞歸。 
int quicksort(vector<int> &v, int left, int right){ if(left < right){ int key = v[left]; int low = left; int high = right; while(low < high){ while(low < high && v[high] > key){
                                high--;
                        }
                        v[low] = v[high]; while(low < high && v[low] < key){
                                low++;
                        }
                        v[high] = v[low];
                }
                v[low] = key;
                quicksort(v,left,low-1);
                quicksort(v,low+1,right);
        }
}
外排序:
http://baike.baidu.com/view/1368718.htm
相關文章
相關標籤/搜索