您的位置:首页 > 健康 > 美食 > 深圳市做网站_百度推广是干什么的_适合员工的培训课程_b站刺激战场视频

深圳市做网站_百度推广是干什么的_适合员工的培训课程_b站刺激战场视频

2024/12/23 7:56:04 来源:https://blog.csdn.net/2302_76702437/article/details/143373732  浏览:    关键词:深圳市做网站_百度推广是干什么的_适合员工的培训课程_b站刺激战场视频
深圳市做网站_百度推广是干什么的_适合员工的培训课程_b站刺激战场视频

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

// 定义元素类型为整型
typedef int ElemType;

// 定义静态表结构体
typedef struct{
    ElemType *elem;        // 动态分配的数组指针
    int TableLen;          // 表长度
} SSTable;

// 初始化静态表
void STInit(SSTable &ST, int len) {
    ST.TableLen = len;     // 设置表长度
    ST.elem = (ElemType *)malloc(sizeof(ElemType)*ST.TableLen); // 分配内存
    int i;
    srand(time(NULL));      // 使用当前时间作为随机数种子
    for(i = 0; i < ST.TableLen; i++){ // 循环初始化数组元素
        ST.elem[i] = rand()%100;      // 随机填充元素(0-99)
    }
}

// 打印静态表内容
void STPrint(SSTable ST){
    for(int i = 0; i < ST.TableLen; i++){
        printf("%3d",ST.elem[i]); // 打印元素,右对齐,总宽度为3个字符
    }
    printf("\n");                 // 换行
}

// 定义插入排序函数,参数为一个整型数组指针和数组的长度
void InsertSort(ElemType *A, int n) {
    int i, j, insertVal; // 声明用于迭代的索引变量i、j以及待插入的值insertVal
    
    // 从第二个元素开始遍历整个数组(假设第一个元素已经是有序的)
    for (i = 1; i < n; i++) {
        insertVal = A[i]; // 将当前元素保存到insertVal中
        
        // 寻找insertVal在已排序部分中的正确位置
        // 比较并移动大于insertVal的元素向右移一位
        for (j = i - 1; j >= 0 && A[j] > insertVal; j--) {
            A[j + 1] = A[j]; // 将较大的元素向右移
        }
        
        // 当前元素的正确位置找到后,将insertVal插入
        A[j + 1] = insertVal;
    }
}

int main(){
    SSTable ST;
    STInit(ST,10);              // 初始化静态表,设置长度为10
    STPrint(ST);                // 打印未排序的静态表
    InsertSort(ST.elem,10);     // 调用插入排序函数,对静态表中的数据进行排序
    STPrint(ST);                // 再次打印静态表,这次是排序后的结果
    scanf("%d");                // 防止程序立即退出
    return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com