黑马程序员技术交流社区
标题:
求解快速排序问题
[打印本页]
作者:
马山闪
时间:
2014-4-1 18:39
标题:
求解快速排序问题
本帖最后由 马山闪 于 2014-4-3 09:44 编辑
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _02快速排序
{
class Program
{
static void Main(string[] args)
{
int[] array = { 1, 3, 4, 7, 2, 7, 9, 0, -13 };
Sort(array, 0, array.Length - 1);
foreach (var item in array)
{
Console.Write(item + " ");
}
Console.ReadKey();
}
public static int GetIndex(int[] array, int left, int right)
{
//这里的算法是从最左边开始算的
int temp = array[left];//temp为基准值
while (left < right)
{
for (int i = right; i >= left; i--)//从右边开始比较
{
if (array
< temp)
{
array[left] = array
;
break;
}
}
for (int i = left; i < right; i++)//从左边开始比较
{
if (array
> temp)
{
array[right] = array
;
break;
}
}
right--;
left++;
}
array[left] = temp;
return left ;
}
public static void Sort(int[] array, int left, int right)
{
if (left < right)
{
//按基准值分成两个数组再继续排序
int temp = GetIndex(array, left, right);
Sort(array, left, temp - 1);
Sort(array, temp + 1, right);
}
}
}
}
作者:
马山闪
时间:
2014-4-1 18:41
纠结了好久,不知道哪个地方错了,输出的是这样
20140401184036.png
(6.36 KB, 下载次数: 33)
下载附件
2014-4-1 18:41 上传
作者:
马山闪
时间:
2014-4-3 09:44
好吧,自己最后弄出来了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2