C#快速排序
代码:
namespace 快速排序
{
class Program
{
static void Main(string[] args)
{
int[] nums = { 1, 9, 6, 4, 2, 5, 7, 10, 3, 8 };
Quicksort(0, nums.Length-1 , nums);
for (int i = 0; i < nums.Length; i++)
{
Console.WriteLine(nums [i]);
}
Console.ReadKey();
}
static void Quicksort(int left,int right, int[] a)
{
int i, j, t, temp;//定义四个变量
if(left >right)
{
return;
}
i = left; //左
j = right; //右
temp = a[left]; //数组最左边的元素,也是基准数
while (i != j)
{
while (a[j] >= temp && i < j) j--;//从右往左找
while (a[i] <= temp && i < j) i++;//从左往右找
if (i < j)//左右两边没有碰头的情况下,左右交换
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[left] = a[i]; //
a[i] = temp;
Quicksort(left, i - 1, a);
Quicksort(i + 1, right, a);
return;
}
}
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!