嵌入式Linux学习DAY7+DAY8

Linux代码对齐方式:

单行对齐:命令模式下“==”自动对齐

多行对齐:选中多行,按一下=

全局对齐:gg=G

                  按gg光标回起始行,按G到最后一行

经验:

       一组数据比最大值最小值:用循环输入一次处理一次

数组

一组相同类型的数据的集合

作用:一次性定义多个相同类型的变量

一维数组

   语法:类型说明符 数组名 [常量表达式],本质为 int[10] a;(与int a类似)

类型说明符:int,short,long,long long

数组名:数组所在空间的名字,数组首元素的地址

[] //表示定义一个数组

常量表达式:表示数组的长度---变量的个数,本质是偏移量,针对首元素的地址的偏移,如a[5],则a[0]的地址为0x100,则a[3]对0x100偏移了3个地址位。

如: int array[5]; //定义了一个数组,里面存有5个int型变量,有20个字节

数组给值方式:

                      初始化:int  a[5] = {1,2,3,4,5};//里面的值为元素

                       元素使用(元素访问):

                                                              语法:a[元素所在位置]

                                                               如:printf(“%d” ,a[3]);

                                                                      scanf("%d" , &a[i]);

数组具有 1.连续性----存储在一片空间内

                2.有序性----元素依次存储

                3.单一性----单一类型元素

数组越界值为乱码;

数组初始化时未定义的值自动赋值为0;

数组不初始化,其值为任意随机值。

数组长度可以省略,但必须有值(变量),因为编译器可以自己计算数组长度。

数组赋值不能整体赋值:

                                      如:a[5]={1,2,3,4,5};

可变数组:int a;

                  scanf("%d",&a);

                  int b[a];    //即可控制数组长度,但该数组不能初始化

字符数组

字符常量是按照字符数组形式存储的,如“tom”这三个字符储存的是s[4],存有‘t’‘o’‘m’‘\0’

,其中‘\0’为字符结束标志。有‘\0’的才是字符串,否则就只是字符数组。

puts:输出字符串,输出时自动换行,使用方法----puts(“数组名”)

gets:输入字符串,使用方法----gets(数组名)---需要头文件#include<string.h>,且容易警告

字符数组的值赋予另一个字符数组:strcpy(c1,c2)  //将c2的字符给与c1

排序

为合适的位置选择合适的数。(比大小)

选择排序:

冒泡排序:

插入排序:在有序的数列里插入一个数(两个定好的数,新来一个数,与两者对比,从而找到合适的位置---如果是一堆数,则是找到前者比自己小,后者比自己大的位置)

例子(部分):
 

      
        for(j=0;j<n;j++) //获得数组中的值

        {

           t=a[j];

           i=j;

           while(i>0&&b[i-1]>t)//与插入数前方值对比,并挪动值

          {

            b[i]=b[i-1];

            i--;

           }  //找位置

           b[i]=t;//插入数

           }

判断代码优劣

1.算法稳定性

2.效率:时间复杂度----运行到n,用的次数。(对n求无穷)

             空间复杂度-----对内存的占用。

排序运用

二分查找:

               前提:数据有序

               思想:运用begin、end、mid三个值,先找到end与begin的中间值mid,比较要找的数与mid的大小,大则mid替代begin,小则替代end,直达mid与查找值想等。

相关推荐

  1. 嵌入Linux学习DAY19

    2024-01-27 22:42:01       47 阅读
  2. 嵌入学习day22 Linux

    2024-01-27 22:42:01       45 阅读
  3. 嵌入学习 Day17

    2024-01-27 22:42:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 22:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 22:42:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 22:42:01       82 阅读
  4. Python语言-面向对象

    2024-01-27 22:42:01       91 阅读

热门阅读

  1. 从k8s当中学习go cli脚手架开发利器-cobra

    2024-01-27 22:42:01       47 阅读
  2. 一篇文章带你全面理解热更新技术

    2024-01-27 22:42:01       45 阅读
  3. Golang 垃圾回收

    2024-01-27 22:42:01       57 阅读
  4. js如何数组去重

    2024-01-27 22:42:01       62 阅读
  5. 抖音私信风车怎么做,详细的实现过程,附视频

    2024-01-27 22:42:01       59 阅读
  6. Vue3使用百度地图marker点位实现水波纹动效

    2024-01-27 22:42:01       49 阅读
  7. 深入了解 Spring ImportBeanDefinitionRegistrar

    2024-01-27 22:42:01       50 阅读
  8. ‘HEAD‘ 是 HTTP 请求的一种方法

    2024-01-27 22:42:01       47 阅读
  9. vue2中的$nextTick原理和简单实现

    2024-01-27 22:42:01       49 阅读
  10. unitary MUSIC 算法

    2024-01-27 22:42:01       50 阅读