7-27 冒泡法排序

题目链接:7-27 冒泡法排序

一. 题目

1. 题目

2. 输入输出格式

3. 输入输出样例

4. 限制

二、代码

1. 代码实现

c 复制代码
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 数字初始化函数
int *arrayGet(int len) {
    int *array;
    array = malloc(len * sizeof(int));
    for (int i = 0; i < len; i++) {
        if (!scanf("%d", &array[i])) {
            return 0;
        }
    }
    return array;
}

// 冒泡排序
int *arraySort(int *array, int len, int time) {
    int tempNum;
    for (int tempTime = 0; tempTime < time; tempTime++) {
        for (int i = 0; i < len - 1; i++) {
            if (array[i] > array[i+1]) {
                tempNum     = array[i];
                array[i]    = array[i+1];
                array[i+1]  = tempNum;
            }
        }
        len --; // 下次排序的比较次数减1
    }
    return array;
}

// 打印函数
void arrayPrint(int *array, int len) {
    bool printOnce = false;
    while (len) {
        if (printOnce) {
            printf (" %d", *array);
        } else {
            printf ("%d", *array);
            printOnce = true;
        }
        array++;
        len--;
    }
}

int main(void) {
    int len, time;
    int *array;

    if (scanf("%d %d", &len, &time) != 2) {
        return -1;
    }
    array = arrayGet(len);
    if (!array) {
        return -1;
    }
    array = arraySort(array, len, time);
    arrayPrint(array, len);
    free(array);

    return 0;
}

2. 提交结果

相关推荐
iuu_star3 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法
JoyCheung-6 小时前
Free底层是怎么释放内存的
linux·c语言
阿华hhh10 小时前
项目(购物商城)
linux·服务器·c语言·c++
方便面不加香菜10 小时前
基于顺序表实现通讯录项目
c语言·数据结构
无限进步_11 小时前
【数据结构&C语言】对称二叉树的递归之美:镜像世界的探索
c语言·开发语言·数据结构·c++·算法·github·visual studio
Eternity∞12 小时前
基于Linux系统vim编译器情况下的C语言学习
linux·c语言·开发语言·学习·vim
HUST13 小时前
C语言第十一讲: 深入理解指针(1)
c语言·开发语言
SoveTingღ14 小时前
【C语言】什么是野指针?
c语言·指针·嵌入式软件
lowhot14 小时前
C语言UI框架
c语言·开发语言·笔记·ui