using System;
namespace ConsoleApplication2
{
internal class Program
{
private static void Main(string[] args)
{
int[] arr = new int[] { 3, 4, 2, 1, 5, 77777, 865, 886, 42, 643, 2, 4 };
sortMethd(arr, 0, arr.Length - 1);
foreach (int i in arr)
{
Console.WriteLine(i.ToString());
}
Console.ReadLine();
}
private static void sortMethd(int[] arr, int left, int right)
{
if (left < right)
{
int key = arr[(left + right) / 2];
int i = left - 1;
int j = right + 1;
while (true)
{
/*
这里是关键的地方 *
*/
while (arr[++i] < key) ;
while (arr[--j] > key) ;
if (i >= j)
{
break;
}
swap(arr, i, j);
}
sortMethd(arr, left, i - 1);
sortMethd(arr, j + 1, right);
}
}
private static void swap(int[] arr, int i, int j)
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
快排算法(好好看看)
最新推荐文章于 2022-06-04 10:14:15 发布