C#快排

快速排序
//快排方法类
namespace Q
{
class QuickSort1
{
//快速排序
public void Quicks(int[] arr, int low, int high)
{
if (low >= high)
{
return;
}
int first = low;
int last = high;
int key = arr[low];
while (first < last)
{
while (first < last && arr[last] >= key)
{
last–;
}
arr[first] = arr[last];
while (first < last && arr[first] <= key)
{
first++;
}
arr[last] = arr[first];
}
arr[first] = key;
Quicks(arr, low, first - 1);
Quicks(arr, first + 1, high);
}
}
}
//主函数类
namespace Q
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[]{2,3,7,6,7,1,8};
QuickSort1 sort = new QuickSort1();
sort.Quicks(arr,0,arr.Length-1);
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(“arr[{0}]:{1}”,i,arr[i]);
}
Console.ReadKey();
}
}
}
//结果
在这里插入图片描述

你可能感兴趣的:(C#,快速排序)