数据结构自用笔记(七):快速排序
2020-07-29 13:31
375 查看
数据结构自用笔记(七):快速排序
class Program { //对数组dataarray中索引从left(开始索引)到right(结束索引)之间的数据排序 static void quicksort(int[] dataarray,int left,int right) { if (left < right) { //基准数 把比他小或者等于他的放在他的左边,比他大的放在他的右边 int x = dataarray[left]; int i = left; int j = right;//用来做循环的标志位 while(true&&i<j)//当i等于j的时候 说明我们找到了一个中间的位置 这个中间位置就是基准数应该所在的位置 { //从右往左比较,找一个比x小(或等于)的数字,放到坑里 坑位于i的位置 while (true && i < j) { //找到一个比基准数 小于或者等于的数字,应该把他放在x 的左边 if (dataarray[j] <= x) { dataarray[i] = dataarray[j]; break; } else { j--;//像左移动到下一个数字 然后作比较 } } //从左向右找一个比x大的数字 放在我们的坑里 现在的坑位于j的位置 while (true && i < j) { if (dataarray[i] > x) { dataarray[j] = dataarray[i]; break; } else { i++; } } } //跳出循环 现在i等于j i是中间的位置 dataarray[i] = x; //来个递归 quicksort(dataarray,left,i-1); quicksort(dataarray, i+1, right); } } static void Main(string[] args) { //测试 int[] data = new int[] { 42, 20, 17, 27, 13, 8, 17, 48 }; quicksort(data, 0, data.Length - 1); foreach (var temp in data) { Console.WriteLine(temp + " "); } Console.ReadKey(); } }
相关文章推荐
- 数据结构 学习笔记(十一):排序(下):快速 / 表 / 桶 / 基数 排序,排序算法的比较
- python数据结构学习笔记-2016-11-24-01-快速排序
- 黑马程序员之数据结构学习笔记:快速排序
- 数据结构学习笔记3.2—快速排序
- 数据结构&算法学习笔记: 快速排序
- 微软等数据结构+算法面试100题(12)--快速排序
- 数据结构--快速排序
- 野生前端的数据结构练习(10)希尔排序,归并排序,快速排序
- 数据结构- 快速排序
- OC学习之道:数据结构中几种常见的排序算法:选择排序,插入排序.快速排序
- 浅谈数据结构-交换排序(冒泡、快速)
- 数据结构学习笔记-排序3
- 学习笔记----快速排序的java实现及其改良
- 算法导论学习笔记(一)快速排序及优化
- 【数据结构----笔记3】插入排序算法之【直接插入排序】
- [置顶] 【scala 数据结构和算法】Scala实现:快速排序
- 【学习笔记----数据结构27-排序】
- 《算法导论》笔记 第7章 7.1快速排序的描述
- 数据结构与算法——快速排序
- 菜鸡笔记之——快速排序