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

     1 #include <iostream>
     2 using namespace std;
     3 int partion(int data[],int length,int start ,int end)
     4 
     5 {
     6     if (data == nullptr || length <= 0 ||end >= length)
     7     {
     8         return 0;
     9     }
    10     int small = start -1 ;
    11     int index =(start + end) >> 1;
    12     swap(data[index],data[end]);
    13     for (int index = start ; index < end ; ++index)
    14     {
    15         if (data[index] < data[end])
    16         {
    17             small++;
    18             if (small != index)
    19             {
    20                 swap(data[index],data[small]);
    21             }
    22         }
    23     }
    24     small++;
    25     swap(data[end],data[small]);
    26     return small;
    27 }
    28 int quickSort(int data[],int length,int start ,int end)
    29 {
    30     if (data == nullptr || length <= 0 ||end >= length)
    31     {
    32         return 0 ;
    33     }
    34     if (start == end)
    35     {
    36         return 0 ;
    37     }
    38     int index = partion(data,length,start ,end);
    39     if (index > start)
    40     {
    41         quickSort(data,length,start ,--index);
    42     }
    43     if (index < end )
    44     {
    45         quickSort(data,length,++index ,end);
    46     }
    47 }
    48 int main()
    49 {
    50     int data[] = {2,3,5,1,50,6,4,0,-3,656,21,64,59,-78,62,3};
    51     quickSort(data,sizeof(data)/sizeof(int),0,sizeof(data)/sizeof(int)-1);
    52     for (int i =0 ;i < sizeof(data)/sizeof(int) ;++i)
    53     {
    54         printf("%d ",data[i]);
    55     }
    56     return 0;
    57 }

    输出结果为:-78 -3 0 1 2 3 3 4 5 6 21 50 59 62 64 656

    To get,you have to give.To give,you need learn to insist.If you really find it is hard for you,then you quit.But once you quit.Don't complain.
  • 相关阅读:
    Spring Controller 获取请求参数的几种方法
    JSP ajax跨域问题 怎么处理 原因:CORS 头缺少 'Access-Control-Allow-Origin')。 ajax http 415
    仿微信滑动返回
    App重新启动
    NetWorkUtils
    ProgressWheel
    没有系统头部的dialog
    仿微信添加触摸图片阴影效果
    循环滚动TextView
    java 分割字符串后放入List中
  • 原文地址:https://www.cnblogs.com/hit-ycy/p/10851464.html
Copyright © 2011-2022 走看看