快速排序

#include<stdio.h>
void quicksort(int arr[] ,int left , int right){
    if(left>=right)return ;
    int l , r , flag ;
    l = left ;
    r = right;
    flag = arr[left] ;
    while(l<r){
        while(l<r&&arr[r]>=flag) r--;
         if(l<r){
           arr[l] = arr[r];
           l++;
         }
         while(l<r&&arr[l]<=flag) l++;
         if(l<r){
           arr[r] = arr[l];
           r--;
          }
      }
    if(l==r)arr[l] = flag;
    quicksort(arr,left ,l-1);
    quicksort(arr,l+1,right);
}
int main(void){
    int arr[9] = {41,55,62,71,37,2,59,4,135};
    quicksort(arr,0,8);
    int i ;
    for( i = 0 ; i < 9 ; i++){
        printf("%d\n",arr[i]);
    }
    return 0;
}
全部评论

相关推荐

06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务