快速排序
来源:互联网 发布:matlab mac 2015b 编辑:程序博客网 时间:2024/06/01 11:44
前言:
内容:
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);//基准元素右边进行递归排序 } } }}