嵌入式学习笔记(day9)

(1)排序:
     从小到大 升序 
     从大到小 降序      
规定:
    c语言中 统一都是 升序排列

//选择排序 

 思想:  
         给对应的位置选择合适的数 


//冒泡排序 

思想:
         相邻两个元素,两两比较,
         小的放前,大的放后 


//插入排序 

  思想:  
         将一个数,插入到一个(有序的序列中)
         找到合适的位置,然后插入
         
         
    实现步骤:
    1.拿一个要插入的值
    2.寻找最终要插入的位置
    3.找到后插入数据

//二分查找

二分查找:
前提:
    查找的数据 一定是有序的。 
    
思路:
   1.找一个中间位置 mid  (实际是数组中间位置的下标 )
     判断中间位置上的值 与 要查找的值的大小关系 
      a[mid] > n
   2.a[mid] > n 
     缩小区间 ,到前面小的一部分继续 二分查找 
   3.a[mid] < n
     缩小区间, 到后面大的一部分继续 二分查找
   4.a[mid] == n 
     直接表示找到了 

(2)一维字符型数组:
char s[10]; //一维字符型数组
            //这个数组是用来放,char类型的数据的 

字符串 //存储字符串数据 
特点:
   形式上 "hello"
   存储上  "hello" -->本质上是按照字符数组的特点存储
            "hello"  //字符串 --- 一串字符 
   结束标志 最后会有一个 '\0' 作为结束标志 
           //好处
             有了结束标志,此时字符数组长度其实不重要了。
             此时处理字符串时,主要看 '\0'结束标志 

字符数组:
   //初始化它 //全部初始化,部分初始化,未初始化 
              用字符串初始化 
              
  //赋值 
      //通过表达式给值 
      for (i = 0; i < n; ++i)
      {
          s[i] = 'a'+i;
      }
      //通过输入给值 
      for (i = 0; i < n; ++i)
      {
         //scanf("%c",&s[i]);
         s[i] = getchar();
      }

gets() 
功能: 给字符数组中,输入一个"字符串"
char *gets(char *s)
char *gets(char s[]) //传一个字符数组的数组名 
参数:
 s 表示 需要传的是一个 字符数组的 名字 
返回值:
   表示 存放字符串的 那块空间的地址 
   注意:
      这个函数是危险的,不推荐使用。(一不小心可能就越界了)
      fgets(); //这个函数可以解决(后面学)
puts()
功能: 将字符串输出,(它会默认输出一个'\n')
int puts(const char *s);
参数:
   s //可以是数组名 也可以是 一个字符串常量 
返回值:
   成功 非负数
   失败 -1 

举例:
  char s[10] = "hello";
  puts(s); //数组名
  puts("hello"); //字符串常量 
      注意:
   1.数组 主要是用来 存储数据的 
   2.字符数组,主要是 存储 "字符串" 数据的

数组的长度 :

 输入一个字符串,
   打印出字符串长度

//函数原型    
size_t strlen(const char *s); 
功能:
    统计 给到的字符串的长度
参数:
  s //数组名 或 字符串常量 
返回值:
  表示字符串长度 
  

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值