zoukankan      html  css  js  c++  java
  • 排序算法(二)交换排序---快速排序

     将需要排序的数组,定义一个标准数字,和一个开始位置(下标),和一个最后位置 (下标)   (标准数字是开始位置的数字)   (6,8,2,9,4,12,1)

     先在最后位置开始,把最后位置的数字和标准数字比较,如果最后位置的数字比标准数字大,则将最后位置向前移动一位

     如果最后位置的数字比标准数字小,则将最后位置的数字赋给开始位置的数字,依次比较,先将数组排成         (1,4,2,6,8,9,12)

     下面将(1,4,2,6,8,9,12)分成两个数组(1,4,2,6)和(8,9,12)

     再将(1,4,2,6)数组和(8,9,12)数组进行依次递归

     1         //把数组中的第0个数组作为标准数
     2         int stard=arr[start];
     3         //记录需要排序的下标
     4         int low=start;
     5         int high=end;
     6         //循环找比标准数大的数和比标准数小的数
     7         while(low<high){
     8             //右边的数字比标准数大
     9             while(low<high&&stard<=arr[high]){
    10                 high--;
    11             }
    12             //右边的数字比标准数小,使用右边的数字替换左边的数
    13             arr[low]=arr[high];
    14             //如果左边的数字比标准数小
    15             while(low<high&&arr[low]<=stard){
    16                 low++;
    17             }
    18             //如果
    19             arr[high]=arr[low];
    20         }
    21         //把标准数据给低所在的位置
    22         arr[low]=stard;
    23         //处理所有的小的数字
    24         quickSort(arr,start,low);
    25         //处理所有的大的数字
    26         quickSort(arr,low+1,end);
    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/axu521/p/9975736.html
Copyright © 2011-2022 走看看