(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 //数组名 或 字符串常量
返回值:
表示字符串长度