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);
    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    java课后作业-4
    课堂练习
    16年9月27日上午
    《大道至简》第二章读后感
    《大道至简》-编程的精义读后感
    用Windbg来看看CLR的JIT是什么时候发生的
    如何调试什么时候SaveFileDialog会被Dispose
    针对C#程序做性能测试的一些基本准则
    要注意null合并运算符的优先级比+还要低
    实现GetHashCode时要遵循的规则
  • 原文地址:https://www.cnblogs.com/axu521/p/9975736.html
Copyright © 2011-2022 走看看