前言:
内容:
namespace kuaisupaixu
{
class Program
{
static void Main(string[] args)
{
int[] array = new int[] { 4, 8, 5, 3, 7, 2, 9, 1, 0, 6 }; //数组1·
int n = array.Length; //n-数组长度
int i;
quicksort(array,0, n-1);
for (i = 0; i < n;i++ )
Console.WriteLine("\t"+array[i]);
Console.Read();
}
public static void quicksort(int[] array, int left, int right)
{
int key = 0;
int i = left;
int j = right;
if (i < j)//确保最少两个元素
{
key = array[left];//将第一个元素作为基准元素
while (i != j) //一个数从左往右,一个从右往左,两边交替进行,直到i=j
{
while (i < j && array[j] > key)
{
j--; //从右递减,直到找到比基准小的元素
}
array[i] = array[j];
while (i < j && array[i] < key)
{
i++; //从左递增,直到找到比基准大的元素
}
array[j] = array[i]; //位置交换
}
array[i] = key; //基准元素归为
quicksort(array, left, i - 1); //基准元素左边进行递归排序
quicksort(array, i + 1, right);//基准元素右边进行递归排序
}
}
}
}