标题:快速排序,求指教
取消只看楼主
预备大佬
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2018-11-8
结帖率:81.82%
已结贴  问题点数:12 回复次数:1 
快速排序,求指教
#include<stdio.h>
int a[101], n;
void quicksort(int left,int right)
{
    int i, j, t, temp;
    if (left > right)
    {
        return;
    }
    temp = a[left];
    i = left;
    j = right;
    while (i != j)
    {
        while (a[j] >= temp&&i < j)
        {
            j--;
        }
        while (a[i] <= temp&&i < j)
        {
            i++;
        }
        if (i < j)
        {
            t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
    }
    a[left] = a[i];
    a[i] = temp;
    quicksort(left, i - 1);
    quicksort(i + 1, right);
    return;
}
int main()
{
    int i, j;
    int n;
    scanf_s("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf_s("%d", &a[i]);
    }
    quicksort(1, n);
    for (i = 1; i <= n; i++)
    {
        printf_s("%d ", a[i]);
    }
    return 0;
}
这个算法里有个地方我不理解
if (left > right)
    {
        return;
    }
这个语句有社么用,把他删了,就打印不出结果。
搜索更多相关主题的帖子: 快速排序 int left temp return 
2018-12-29 20:40
预备大佬
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2018-11-8
得分:0 
回复 3楼 花脸
谢谢
2018-12-30 09:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492391-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.196636 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved