zoukankan      html  css  js  c++  java
  • 快速排序算法

    1.    快速排序算法的“笼统”说法:

      找一个基准值,比这个值大的放在右边,比这个值小的放在左边,然后循环递归,直到完成整个排序。

    2.    示意图:

      

    3.    具体代码:

     1 #include <stdio.h>
     2 
     3 void quick_sort(int arr[],int arr_start,int arr_end)
     4 {
     5     if(arr_start < arr_end)
     6     {
     7         int left = arr_start;
     8         int right = arr_end;
     9         int compData = arr[left];
    10 
    11         while(left < right)
    12         {
    13             //form right to left
    14             while(left < right && arr[right] > compData) right--;
    15             if(left < right)
    16             {
    17                 arr[left] = arr[right];
    18                 left ++;
    19             }
    20 
    21             while(left < right && arr[left] < compData) left++;
    22             if(left < right)
    23             {
    24                 arr[right] = arr[left];
    25                 right --;
    26             }
    27 
    28             arr[left] = compData;
    29             quick_sort(arr,arr_start,left-1);
    30             quick_sort(arr,left+1,arr_end);
    31             
    32         }
    33 
    34     }
    35 }
    36 
    37 int main(int argc,char const *argv[])
    38 {
    39     int arr[] = {58,30,20,50,42,55,69};
    40     int arr_length = sizeof(arr)/sizeof(int);
    41     quick_sort(arr,0,arr_length-1);
    42     for(int i = 0;i<arr_length;i++)
    43     {
    44         printf("%d ",arr[i]);
    45     }
    46 
    47     printf("
    ");
    48 }

    4.    结果:

  • 相关阅读:
    Spring restful
    LDAP & Implementation
    Restful levels and Hateoas
    事务隔离的级别
    servlet injection analysis
    session and cookie
    write RE validation
    hello2 source analysis
    匿名函数和递归函数
    生成器和迭代器,列表推导式
  • 原文地址:https://www.cnblogs.com/Older-Driver-of-Newer/p/8630171.html
Copyright © 2011-2022 走看看