快速排序

来源:互联网 发布:端口嗅探 编辑:程序博客网 时间:2024/06/05 12:39

先上代码:

/* *快速排序 */void QuickSort(int *array, int left, int right){    int i,j,key;    key = array[left];   /*设置关键字*/    if(left < right)    {        i = left;        /*设置左边游标*/        j = right;       /*设置右边游标*/        while(i < j)        {            while(i<j && array[j]>key) j--;    /*从右向左遍历,找出比关键字小的元素,放入左边游标所指位置,左边有标向右移动一个位置*/            if(i<j)            {                array[i] = array[j];                i++;            }            while(i<j && array[i]<key) i++;   /*从左向右遍历,找出比关键字大的元素,放入右边游标所指的位置,右边游标向左移动一个位置*/            {                array[j] = array[i];                j--;                    }        }        array[i] = key;       /*将关键字放在左边游标所指的位置*/        QuickSort(array, left, i-1);  /*关键字左边部分递归调用*/        QuickSort(array, i+1, right); /*关键字右边部分递归调用*/    }}

附上一个很好的排序算法演示地址:http://www.atool.org/sort.php

0 0