急!!关于快速排序 现在有个题目,要求是在listbox中输出20个随机数字,然后点击排序按钮,实现用快速排序的方法对20个随机数字进行排序。我写了很久,发现如果使用递归函数一直有问题。请问哪位高手能告诉我个比较简单的快速排序的方法。谢谢!!!非常紧急!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一趟快速排序的算法如下: private void qkpass(int f, int r, int k,int[] a) { int i = f, j = r, t; while (i < j) { while ((i < j) && (a[j] >a[i])) { j = j - 1; } if (i<j) { t = a[j]; a[j] = a[i]; a[i] = t; i++; } while ((i < j) && (a[i] <a[j])) { i = i + 1; } if (i < j) { t = a[i]; a[i] = a[j]; a[j] = t; j--; } } k = i;递归算法:private void qksort(int[] a, int f, int r) { for(int i=0;i<20;i++) { qkpass(f, r,k,a); qksort(a, f, k - 1); qksort(a, k + 1, r); } } C#邮件研究 问题 我在treeview 得doubleclick里写插入 代码, 执行的时候发现双击后有展开但马上又缩回去了 请教C#WinForm下的UDP代码(服务器和客户端) 代理能不能继承? ! 自定义组件重画时出现怪问题? 这种效果用c#怎样实现的 一个关于datagrid模板列的问题 两个SQL表自然连接后,C#如何访问其点成员? 困惑了很长时间的问题 对象行为是什么?? 字符串处理的问题,小问题,大家帮帮忙!!!!!!!!!!
private void qkpass(int f, int r, int k,int[] a)
{
int i = f, j = r, t;
while (i < j)
{
while ((i < j) && (a[j] >a[i])) {
j = j - 1;
}
if (i<j)
{
t = a[j];
a[j] = a[i];
a[i] = t;
i++;
}
while ((i < j) && (a[i] <a[j]))
{
i = i + 1;
}
if (i < j)
{
t = a[i];
a[i] = a[j];
a[j] = t;
j--;
}
}
k = i;
递归算法:
private void qksort(int[] a, int f, int r)
{
for(int i=0;i<20;i++)
{
qkpass(f, r,k,a);
qksort(a, f, k - 1);
qksort(a, k + 1, r);
}
}