嵌入式学习笔记总结Day14

      今天学习了第四种排序方法---快速排序,同时介绍了用指针操作以为字符型数组,指针与函数,以及指针与二维数组:
  一、快速排序

快速排序是一种综合了指针,函数,以及递归的排序方法,它的 时间复杂度为nlogn,相比与前面学习的排序,是一种非常优秀的排序方法,以下是快速排序的基本思路:

1.定义一个基准值,一般选择数组的第一个数为基准值

2.从右边开始找比基准值小的数。

3.从左边开始找比基准值大的数。

4.交换找到的两个数

5.重复2-4的步骤,直到begin与end指针相遇

6.此时将相遇位置的值与基准值进行交换。

7.此时数组被基准值分为左右两部分,最后再对这两部分进行快速排序

以下是代码实现:

二、指针去操作一维字符型数组

主要学习了如何用指针去编写操作字符串的一些函数:

gets
puts 
strlen
strcpy /strncpy 
strcat /strncat 
strcmp /strncmp 

三、指针与函数

要注意以下两个概念:

函数指针 : 函数类型的 指针 
指针函数 : 返回值为指针类型 的函数 

四、指针与二维数组

要了解指针与二维数组的关系,首先得知道二维数组的本质。二维数组的本质还是一维数组

int a[3][4]; //本质还是一维数组 
int[4] a[3]; //理解角度 
             //a --数组名 --代表类型 int [3][4]
             //a --代表的值 -- 首元素的地址 -- a[0] 
             //a[0] 的数据类型 int[4]
             //&a[0]--对应的数据类型 int(*)[4] //数组类型 (一维整型数组类型)
             //数组类型的指针 --- 数组指针                   
 

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值