冒泡排序和选择排序的拓展:
两个排序哪个好?从算法稳定性和效率,耗费的时间(CPU执行代码的数量),用的空间考虑。
时间复杂度 ---- 大O计法:O(n)=n^2--粗略计算出冒泡排序和选择排序的时间复杂度,发现两者所耗费的时间差不多
插入排序
在有序的数列中(大前提),找一个合适的位置插入
定义一个数组元素数量变量的方法:
int n = 10 (拉长数组,可以在10之内去定义数组长短) ; scanf(“%d”,&n) ; int a[n] (不能初始化)
查找一个数组中某一个值
查找(二分查找) 的前提就是需要数据有序性(先排序)
排序(插入排序):
二分法比较
找到mid时,等于x(想查找的值),else的语句执行,此时else存在寻找的值不存在情况,所以要在后面重新给一个条件语句,在范围的时候输出mid,不在范围提示查找值不存在
字符型数数组:
形式:unsigned char s [10] = {’a‘,’b‘’,‘c'} ; 或者unsigned char s[10] = "字符串"
puts(字符数组的变量)
注意:1.'\0'是代表字符串结束的标志,尤为重要“
2.处理字符串时,常常用'\0'作为结束的标志(循环的结束位)
这段程序的含义是:s数组中的某一项为'\0'的时候,循环停止。每一次打印项中的元素数据,i作为项数,依次打印,最后i的值就为数组长度。
int puts(const char *s);
功能:输出字符串
char *gets(char *s);
功能:输入字符串