题解 | 【模板】序列操作

【模板】序列操作

https://www.nowcoder.com/practice/12da4185c0bb45918cfdc3072e544069

666,一道题把所有基础全涵盖了

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

void quicksort(int number[], int l, int r) {
    if (l >= r) return;

    int i = l, j = r;
    int pivot = number[l];

    while (i < j) {
        while (i < j && number[j] >= pivot) j--;
        while (i < j && number[i] <= pivot) i++;
        if (i < j) {
            int tmp = number[i];
            number[i] = number[j];
            number[j] = tmp;
        }
    }

    number[l] = number[i];
    number[i] = pivot;

    quicksort(number, l, i - 1);
    quicksort(number, i + 1, r);
}

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

    int *number = (int *)malloc(sizeof(int) * (q + 5));
    int length = 0;

    for (int t = 0; t < q; t++) {
        int op;
        scanf("%d", &op);

        if (op == 1) {
            int x;
            scanf("%d", &x);
            number[length++] = x;
        }
        else if (op == 2) {
            length--;
        }
        else if (op == 3) {
            int i;
            scanf("%d", &i);
            printf("%d\n", number[i]);
        }
        else if (op == 4) {
            int i, x;
            scanf("%d %d", &i, &x);

            for (int j = length; j > i + 1; j--) {
                number[j] = number[j - 1];
            }
            number[i + 1] = x;
            length++;
        }
        else if (op == 5) {
            quicksort(number, 0, length - 1);
        }
        else if (op == 6) {
            quicksort(number, 0, length - 1);
            for (int l = 0, r = length - 1; l < r; l++, r--) {
                int tmp = number[l];
                number[l] = number[r];
                number[r] = tmp;
            }
        }
        else if (op == 7) {
            printf("%d\n", length);
        }
        else if (op == 8) {
            for (int i = 0; i < length; i++) {
                printf("%d", number[i]);
                if (i != length - 1) printf(" ");
            }
            printf("\n");
        }
    }

    free(number);
    return 0;
}

全部评论

相关推荐

03-28 16:43
佛山大学 Java
在度假的布拉德很想退...:你这实习项目写的也太简单了吧?业务加技术难点要体现出来呀,你这写的都不知道具体干了什么
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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