不会陷入死循环的快速排序
static void quick_sort(int[] s ,int l, int r) { int i = l, j = r, t, x = s[l]; while (j > i) { while (s[j] >= x && i <j) { j--; } while (s[i] <= x && i<j) { i++; } if (j > i) { t=s[i]; s[i] = s[j]; s[j] = t; } } s[l] = s[i]; s[i] = x; //Console.WriteLine(string.Join(",",s)); if(i>l) quick_sort(s, l, i - 1); if(j<r) quick_sort(s, i + 1, r); Console.WriteLine(string.Join(",",s)); }
调用方式
int[] array = { 6, 1, 2, 7, 9, 3, 4, 5, 10, 8 }; int index=4; int t = array[index]; quick_sort(array, 0, array.Length-1);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。