zoukankan      html  css  js  c++  java
  • 递归快速排序


    using System;


     /// <summary>
     /// 递归快速排序 的摘要说明。
     /// </summary>
     public class QuickSort
     {
      public static void Main()
      {
       int[] intary={45,67,34,23,12,89};
       Console.WriteLine("排序前,输出数组如

    下:");
       printArray(intary);
       quickSort(intary,0,intary.Length-1);
       Console.WriteLine("快速排序之后,输出

    数组如下:");
       printArray(intary);

      }
      private static void printArray(int[] tmpary)
      {
       
       foreach(int tmpnum in tmpary)
       {
        Console.Write(tmpnum+"\t");
       }
       Console.WriteLine();
      }
            private static void quickSort(int[] ary, int start,

    int end)
      {

       int i=start;
       int j=end;
       int pivot=ary[i];//把枢轴的数字独立存

    起来
       while(i<j)
       {
        while(i<j  &&  pivot<=ary

    [j])//从右边找寻比枢轴小的数字,找到后就换到左边枢轴位置去
        {
         j--;
        }
        ary[i]=ary[j];//将找到的较小

    数字换到枢轴位置
        while(i<j && pivot>ary[i])//

    从左边找寻比枢轴大的数字,找到后就换到右边刚才那个大数字的位

    置去
        {
         i++;
        }
        ary[j]=ary[i];//将找到的较大

    数字换到刚才那个空位去
       }
       ary[i]=pivot;//i此时为分隔位置,所有i

    左边的都比枢轴小,所有i右边的都比枢轴大,将枢轴填入此位置
                ary[j] = pivot;
                if (i > start)
                {
                    quickSort(ary, start, i - 1);//使用快速排序法

    递归重排枢轴左边比其小的全部数字
                }
                else
                {
                    //左边递归到此结束
                }
                if (i < end)
                {
                    quickSort(ary, i + 1, end);//使用快速排序法递

    归重排枢轴右边比其大的全部数字
                }
                else
                {
                    //右边递归到此结束
                }
      }
     }

  • 相关阅读:
    Shell中判断语句if中-z至-d的意思
    每日英语-20171129
    THINK PHP 学习笔记20171115
    每日英语-20171115
    git bash安装和基本设置
    Centos6.8搭建Git服务(git版本可选)
    一键安装lamp环境出现的问题
    用PHP实现反向代理服务器
    动词的过去式、过去分词、现在分词
    树莓派 中文
  • 原文地址:https://www.cnblogs.com/jasonjiang/p/1763541.html
Copyright © 2011-2022 走看看