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

    描述:

    快速排序可以理解为:分+递归,主要思想是分治。先找一个中间数,将数组划分成左右两个部分,左边的均小于或中间数,右边的均大于中间数;然后递归对左右部分进行递归;递归结束是区间只含一个数或者零个数。

    参考:挖坑+填坑http://blog.csdn.net/morewindows/article/details/6684558#reply

     1 #include <iostream>
     2 #include <string>
     3 #include <memory.h>
     4 #include <vector>
     5 using namespace std;
     6 
     7 //递归版本
     8 void quick_sort1(vector<int> &arr,int s,int e)
     9 {
    10     if(s < e)
    11     {
    12         int pos = part_tion(arr,s,e);
    13         quick_sort1(arr, s, pos - 1);
    14         quick_sort1(arr, pos + 1, e);
    15     }
    16 }
    17 
    18 int part_tion(vector<int> &arr,int s,int e)
    19 {
    20     int tmp = arr[s];
    21     int i = s;
    22     int j = e;
    23     while(i < j)
    24     {
    25         while(i < j && arr[j] > tmp)
    26             --j;
    27         if(i < j)
    28         {
    29             swap(arr[i],arr[j]);
    30             ++i;
    31         }
    32 
    33         while(i < j && arr[i] <= tmp)
    34             ++i;
    35         if(i < j)
    36         {
    37             swap(arr[i],arr[j]);
    38             j--;
    39         }
    40     }
    41     arr[i] = tmp;
    42     return i;
    43 }
    44 
    45 int main()
    46 {
    47 
    48     return 0;
    49 }
  • 相关阅读:
    Delphi程序结构
    SQL存储过程解密 Encrypted object is not transferable, and script can not be generated

    在河南呢
    还在河南,写随笔吧
    HAVING
    mIRC
    关于CAP理论
    开篇
    移动信息系统
  • 原文地址:https://www.cnblogs.com/cane/p/3861767.html
Copyright © 2011-2022 走看看