AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

schoolwork

作者: 作者的头像   喜欢芝麻 ,  2025-01-08 20:11:51 ,  所有人可见 ,  阅读 14


0


sort

#include<stdio.h>

int a[10010];
void quick_sort(int a[], int l, int r) {
    if (l >= r) {
        return;
    }
    int i = l - 1, j = r + 1, x = a[l + r >> 1];
    while (i < j) {
        do {
            i += 1;
        } while (a[i] < x);
        do {
            j -= 1;
        } while (a[j] > x);
        if (i < j) {
            int t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
    }
    quick_sort(a, l, j);
    quick_sort(a, j + 1, r);
}


int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    quick_sort(a, 0, n - 1);
    for (int i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    return 0;
}

binary search

#include<stdio.h>

int a[10010];
void quick_sort(int a[], int l, int r) {
    if (l >= r) {
        return;
    }
    int i = l - 1, j = r + 1, x = a[l + r >> 1];
    while (i < j) {
        do {
            i += 1;
        } while (a[i] < x);
        do {
            j -= 1;
        } while (a[j] > x);
        if (i < j) {
            int t = a[i];
            a[i] = a[j];
            a[j] = t;
        }
    }
    quick_sort(a, l, j);
    quick_sort(a, j + 1, r);
}


int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    quick_sort(a, 0, n - 1);
    for (int i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
    int x;
    scanf("%d", &x);
    int l = 0, r = n - 1;
    while (l < r) {
        int mid = l + r >> 1;
        if (a[mid] >= x) {
            r = mid;
        }
        else {
            l = mid + 1;
        }
    }
    if (a[l] != x) {
        printf("该数字不存在");
    } else {
        printf("该数字的位置为:%d", l + 1);
    }
    return 0;
}

暴力

#include<stdio.h>


int a[10010];
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    int x;
    scanf("%d", &x);
    for (int i = 0; i < n; i++) {
        if (a[i] == x) {
            printf("idx is %d", i + 1);
            return 0;
        }
    }
    printf("this number is null");
    return 0;
}

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息