博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
經典算法002--快速排序
阅读量:5160 次
发布时间:2019-06-13

本文共 1331 字,大约阅读时间需要 4 分钟。

快速排序的基本概念:

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

一組數值,使用快速排序(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); } } }

 

转载于:https://www.cnblogs.com/kuangxiangnice/p/5547149.html

你可能感兴趣的文章
有关快速幂取模
查看>>
Linux运维必备工具
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
Codeforces Round #277 (Div. 2)
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
淡定,啊。数据唯一性
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>