一维数组,冒泡排序(Day-3)
发布日期:2022-02-08 18:03:19 浏览次数:52 分类:技术文章

本文共 1180 字,大约阅读时间需要 3 分钟。

构造类型: 数组,枚举, 结构体,共用体

共用体:union 共用体名 {成员变量};//不同于结构体

1. 数组:

  1. 格式: 类型修饰符 变量名[] = {值1, 值2, …..};

    例:
    int a[5] = {1, 2, 3, 4, 5};//注意编码规范
    int b[] = {1, 2, 3, 4, 5}; 或者 b[] = {1, 2, 3};
    int c[5] = {0};
    错误定义:
    元素个数 < 初始值 元素个数为空,初始值为空

  2. 数组元素序号:0—-n-1

    不能一次访问数组内部的全部元素
    访问实现:数组名[下标]
    printf(“%lu\n”,sizeof(a));//%lu无符号的长整型数据, 结果输出的是数组的字节数,不是元素个数

    输出时,可利用for循环遍历数组

    注意数组越界的问题…….

  3. 字符数组:元素类型为字符,

    例:char a[5] ={‘h’, ‘e’, ‘l’, ‘l’, ‘o’};
    利用字符数组存储字符串——方便
    输出字符串:%s
    例:char a[] =”hello world!”;——方便

    系统如何识别字符串的’\0’,数据存储在内存中,当读取字符串时,遇到就会停止读取,字符串中的’\0’是系统默认带的。(有效字符:第一个’\0’前的所有字符)

    字符数组不一定是字符串

  4. 字符串的系统函数(部分):

    strlen();// 获取字符串长度 (提示:如果获取长度出现警告,可以将变量定义为long/long unsigned型,再赋值为strlen() )

    strcpy();// 字符串拷贝 strcpy(字符串1, 字符串2)将字符串2中的数据拷贝到字符串1中

    注意: 字符串1的空间 >= 字符串2,注意’\0’
    给一个字符数组赋值,只能使用strcpy函数

    strcmp();// 字符串比较 两个字符串自左向右进行比较(根据ASCII码),直到出现不同的字符或者’\0’,

    字符串1-字符串2:
    字符串1 > 字符串2 结果 大于0
    字符串1 < 字符串2 结果 小于0
    字符串1 = 字符串2 结果 等于0

2. 排序

  1. 选择排序比冒泡排序快,但是不稳定,从小到大排序
    选择排序:每趟将最小的值和a[0]进行交换,用k标记数组中最小元素的下标
    冒泡排序:当前的元素和下一个元素进行比较,按相应的规则进行交换。
  2. 注意:冒泡排序的时间复杂度为n-1 当进行for循环的时候,循环次数为n-1,不是n
  3. 冒泡排序最差的循环次数为:n*(n-1) / 2
    冒泡排序格式:
for(int i = 0; i < count - 1; i++){    for(int j = 0; j < count - 1 - i; j++){//        对应的排序规则    }} // count为需要排序的元素个数

转载地址:https://blog.csdn.net/Evelynzn/article/details/48311285 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Day-1:C语言基本知识:
下一篇:分支结构:(Day-2)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年03月31日 06时22分30秒