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

    快速排序的基本概念:

    快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

    一組數值,使用快速排序(Quicksort),從小到大排序。

     class Program
        {
            static void Main(string[] args)
            {
                int[] arrayInts = new int[] {99, 6, 7, 2, 14, 8, 2};
                Quick_by(ref arrayInts,0,arrayInts.Length);
            }
    
            public static void Quick_by(ref int[] array,int left,int right)
            {
                if (left < right)
                {
                    int i = left;
                    int j = right - 1;
                    int middle = array[(left + right)/2];
                    while (true)
                    {
                        while (i < right && array[i] < middle)
                        {
                            i++;
                        }
                        while (j > 0 && array[j] > middle)
                        {
                            j--;
                        }
                        if (i == j) break;
                        array[i] = array[i] + array[j];
                        array[j] = array[i] - array[j];
                        array[i] = array[i] - array[j];
                        if (array[i] == array[j]) j--;
                    }
                    Quick_by(ref array,left,i);
                    Quick_by(ref array,i+1,right);
                }
            }
    }
  • 相关阅读:
    java面试题2
    java面试题
    查询数据库表字段名和字段类型等信息
    安装eclipse
    redis启动
    eclipse离线安装sonarlint插件
    大白菜安装win10系统
    制作window.ios镜像
    大白菜装机系统
    传递中文字符串时,转换编码格式
  • 原文地址:https://www.cnblogs.com/kuangxiangnice/p/5547149.html
Copyright © 2011-2022 走看看