using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i = 0, r = 9;
student stu = new student();
stu.kuaipai(0, 9);
//foreach (var item in stu.a)
//{
// Console.WriteLine(item);
//}
}
}
class student
{
public int[] a = new int[10] { 5,4, 6, 3, 13, 7, 2, 1, 8, 10 };
public void kuaipai(int left, int right)
{
if (left >= right)
return ;
int i = left, j = right;
int n = a.Length;
//在这个大循环里,他的目标是从右边找小于基准值的数,从左边找大于基准的值然后交换一直找一直换
while (true)
{
//这里面的两个小循环分别是从右边找小于基准值的数,从左边找大于基准的值
while (true)
{
if (a[j] < a[left] || j == i)
break;
j--;
}
while (true)
{
if (a[i] > a[left] || j == i)
break;
i++;
}
int m;
if (j == i)
{
m = a[i];
a[i] = a[left];
a[left] = m;
foreach (var item in a)
{
Console.Write(item.ToString()+" ");
}
Console.WriteLine();
break;//当左右碰到一起的时候,一次大循环结束
}
else
{
m = a[j];
a[j] = a[i];
a[i] = m;
foreach (var item in a)
{
Console.Write(item.ToString() + " ");
}
}
Console.WriteLine();
}
kuaipai(left, i - 1);
kuaipai( i + 1,right);
}
}
}
能够输出每次排序后的结果:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务