无标题文章

#include 
void quickSort(int array[],int _left,int _right){
    int left = _left;
    int right = _right;
    int temp = 0;
    if (left <= right)                  //待排序的元素至少有两个的情况
    {
    temp = array[left];                 //待排序的第一个元素作为基准元素
    while(left != right){                   //从左右两边交替扫描,直到left = right
        while(right > left && array[right] >= temp )
            right--;                //从右往左扫描,找到第一个比基准元素小的元素
        array[left] = array[right];         //找到这种元素arr[right]后与arr[left]交换
        while(left < right && array[left] <= temp)
            left++;                 //从左往右扫描,找到第一个比基准元素大的元素
        array[right] = array[left];         //找到这种元素arr[left]后,与arr[right]交换
    }
    array[right] = temp;                    //基准元素归位
    quickSort(array,_left,left-1);              //对基准元素左边的元素进行递归排序
    quickSort(array,right+1,_right);            //对基准元素右边的进行递归排序
    }
}
int main(int argc, char const *argv[])
{
    int array[] = {11,15,32,9,23,65,98,12,32,78,3,45};
    int len = sizeof(array) / sizeof(array[0]);
    printf("before:");
    for(int i=0;i

你可能感兴趣的:(无标题文章)