C#快速排序算法
来源:互联网 发布:淘宝客户信誉度怎么看 编辑:程序博客网 时间:2024/05/29 00:31
一、该方法的基本思想是
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
二、C#快速排序代码
public class QuickSort { /**//// <summary> /// 排序 /// </summary> /// <param name="numbers">待排序数组</param> /// <param name="left">数组第一个元素索引Index</param> /// <param name="right">数组最后一个元素索引Index</param> private static void Sort(int[] numbers, int left, int right) { //左边索引小于右边,则还未排序完成 if (left < right) { //取中间的元素作为比较基准,小于他的往左边移,大于他的往右边移 int middle = numbers[(left + right) / 2]; int i = left - 1; int j = right + 1; while (true) { while (numbers[++i] < middle) ; while (numbers[--j] > middle) ; if (i >= j) break; Swap(numbers, i, j); } Sort(numbers, left, i - 1); Sort(numbers, j + 1, right); } } /**//// <summary> /// 交换元素值 /// </summary> /// <param name="numbers">数组</param> /// <param name="i">当前左边索引</param> /// <param name="j">当前右边索引</param> private static void Swap(int[] numbers, int i, int j) { int number = numbers[i]; numbers[i] = numbers[j]; numbers[j] = number; } public static void Main() { int[] max = { 6, 5, 2, 9, 7, 4, 0 }; Sort(max, 0, max.Length - 1); StringBuilder temp = new StringBuilder(); for (int i = 0; i < max.Length; i++) { temp.Append(max[i].ToString() + ","); } Console.WriteLine(temp.ToString().Substring(0, temp.Length - 1)); Console.ReadLine(); } }
参考资料: C#快速排序 http://www.studyofnet.com/news/519.html
0 0
- C#算法 快速排序
- 快速排序算法c#
- C#快速排序算法
- C#快速排序算法
- 【算法】C#快速排序类
- 【算法】C#快速排序类
- C#实现快速排序算法
- C#快速排序算法实现
- 快速排序算法c#版
- C#算法-------(五)快速排序
- 快速排序算法-c#版
- c# 快速排序算法实现
- C#实现快速排序算法
- 【快速排序算法-C#实现】
- 【算法】C#快速排序类(转载)
- C#泛型快速排序算法
- 快速排序算法(C#实现)
- c#冒泡排序算法和快速排序算法
- Button cannot be resolved to a type报错
- Mmap的实现原理和应用
- 单调递增子序列
- JAVA获取MAC地址的方法
- hadoop常用命令
- C#快速排序算法
- Python框架、库和软件资源大全(整理篇)
- web页面缩小时,控制页面上比较大的table不折行,不突出
- 在eclipse中如何安装插件
- IOS6 应用内跳转到appstore里下载
- android应用如何启动另外一个apk应用
- 『ANDROID』FragmentTabhost底部显示
- java对象有什么重要的?
- [技术文章] 教你电脑右下角显示你的名字