当前位置:   article > 正文

快速排序(C语言)

快速排序(C语言)

思想:分治       递归

首先找到一个中间值

5    7    9       1      0

中间值      5

第一次     0         7       9            1       5 

0         1          9       7        5

#include <stdio.h>
int arr[5] = { 5,6,9,8,7 };
void quick_sort( int l ,int r )
{

    int i = l - 1 ;
    int j = r + 1;
    int temp = 0;
    int x = arr[l];
    if( l >= r )
    {
        return ;
    }
    while( i < j )
    {
        do
        {
            i++;
        }while( arr[i] < x );
        
        do
        {
            j--;
        }
        while( arr[j] > x );
        
        if( i < j  )
        {
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    quick_sort( l , j );
    quick_sort( j + 1 , r );  防止出现死循环
}


int main()
{
    int i = 0;
    quick_sort(0,4);
    for( i = 0 ; i <= 4 ; i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/164719?site
推荐阅读
相关标签
  

闽ICP备14008679号