目录
学习目标:
今天主要学习字符串和指针的内容。
学习内容:
指针的进一步使用,迭代的学习
2.1快速排序算法
通过一轮的排序将序列分割成独立的两部分,其中前一部分序列的关键字均比后一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两部分的元素不需要进行比较,故减少了比较次数,降低了排序时间。
1)先从右向左找第一个比基准数小的数,小于等于的不算。指针为p
2)再从左向右数找第一个比基准数大的数。指针为q
3)循环终止,交换这两个数。
4)重复上面三步,直至p与q重叠在一起,跳出循环。
5)调用swap函数进行begin和p交换
经过上述过程前一部分的值都小于后一部分,与二分查找类似。接下来通过递归调用的思想再对这两部分分别排序。
6)qSort(begin, p-1);
qSort(p + 1, end);
2.2const
修饰变量代表该变量不可被修改
修饰指针代表指针指向的对象不可被修改,指针本身可以被修改为其他元素的指针
2.3void *
不能进行指针运算,因为其计算结果的数据类型不确定。
学习练习:
1 #include<stdio.h>
2
3 void printfArray(int *a,int len)
4 {
5 int i;
6 for( i = 0; i < len;++i)
7 {
8 printf("%3d",*(a + i));
9 }
10 printf("\n");
11 }
12
13 void swap(int *a,int *b)//元素交换
14 {
15 int temp = *a;
16 *a = *b;
17 *b = temp;
18 }
19
20 void rover(int *begin ,int *end)//逆序输出
21 {
22 if(begin >= end)
23 {
24 return ;
25 }
26 else
27 {
28