题解 | #明明的随机数#

明明的随机数

https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

#include <stdio.h>
#include<stdlib.h>

void exchange(int *a, int *b)
{
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

int quick(int *n, int l, int r)
{
    int temp = n[r];
    int i = l - 1;

    for(int j = l; j < r; j++)
    {
        if(n[j] <= temp)
        {
            i++;
            exchange(&n[i], &n[j]);
        }
    }

    exchange(&n[i + 1], &n[r]);

    return i + 1;
}

void quicksort(int *n, int l, int r)
{
    if(l >= r)
    {
        return;
    }

    int q = quick(n, l, r);
    quicksort(n, l, q - 1);
    quicksort(n, q + 1, r);
}

int main() {
    int num;
    scanf("%d", &num);

    int *n = (int *)malloc(num * sizeof(int));

    for(int i = 0; i < num; i++)
    {
        scanf("%d", &n[i]);
    }

    quicksort(n, 0, num - 1);

    for(int i = 0; i < num - 1; i++)
    {

        printf("%d\n", n[i]);

        while(n[i + 1] == n[i])
        {
            i++;
        }
    }

    if(n[num - 2] != n[num - 1])
    {
        printf("%d\n", n[num - 1]);
    }

    return 0;
}

全部评论

相关推荐

08-21 16:35
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务