博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#快速排序原理讲解及代码块
阅读量:3707 次
发布时间:2019-05-21

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

1.原理讲解

2.代码块

public class QuickSortAlgorithm    {
static int index = 0; public static void QuickSort(int[] a, int low, int high) {
if (low >= high) {
return; } int pivot = QuickSortOnce(a, low, high);//输出每一次排序。 //对枢轴左端进行排序。 QuickSort(a, low, pivot - 1); //对枢轴右端进行排序。 QuickSort(a, pivot + 1, high); Console.WriteLine("快速排序次数统计" + index); } public static int QuickSortOnce(int[] a, int low, int high) {
//将首个元素作为枢轴。 int pivot = a[low]; int i = low, j = high; while (i < j) {
//从右往左,寻找首个小于povit的元素。 while (a[j] >= pivot && i < j) {
index++; j--; } //执行到此,j一定指向从右端起首个小于或等于povit的元素。执行替换。 a[i] = a[j]; //从左往右,寻找首个大于povit的元素。 while (a[i] <= pivot && i < j) {
index++; i++; } 执行到此,j一定指向从右端起首个大于或等于povit的元素。执行替换。 a[j] = a[i]; } //退出while循环,执行至此,必定是i==j的情况。i(或j)指向的既是枢轴的位置,定位该趟排序的枢轴并将该位置返回。 a[i] = pivot; return i; } }

转载地址:http://nacjn.baihongyu.com/

你可能感兴趣的文章
2020-11-08 Vue-01
查看>>
2020-11-07L 697数组的度
查看>>
2020-11-07 unshift 与 push 与 es6
查看>>
2020-11-08L 数组中心索引
查看>>
2020-11-08 Infinity 与 NaN
查看>>
2020-11-09 逗号“,”表达式
查看>>
2020-11-09L 1128. 等价多米诺骨牌对的数量
查看>>
2020-11-10&L—— 函数定义 && 1608. 特殊数组的特征值 && 16.15. 珠玑妙算 &&
查看>>
2020-11-10 Vue-02插值操作
查看>>
2020-11-11&L——prototype,__proto__ && 674. 最长连续递增序列
查看>>
2020-11-11 Vue-03动态绑定属性
查看>>
2020-11-12L 作用域 && 27移除元素被
查看>>
2020-11-13L arguments && 283移动零
查看>>
2020-11-14L 立即执行函数 && 重塑矩阵
查看>>
2020-11-15L && 1299. 将每个元素替换为右侧最大元素 && 1122. 数组的相对排序
查看>>
2020-11-15 Vue-04计算属性&&05-es6补充
查看>>
2020-11-16L && 561. 数组拆分 I
查看>>
2020-11-17L && 1010
查看>>
2020-11-17 Vue-05事件监听
查看>>
2020-11-17 Vue-06条件判断
查看>>