上一个章节我们讲完了数组的概念和基本用法,接下来我会为大家仔细的讲解数组的查找和排序方法,代码稍微有点复杂,但相信大家一定掌握的,来喽!!!
首先我们讲完数组查找的方法:
数组查找的方法分为2种:
1.顺序查找
2.二分查找
顺序查找顾名思义就是在一个数组中挨个数查找,代码如下:
这是顺序查找的排序部分,我们用for循环访问数组,在挨个查找目标数字,如果找到该数字,则返回该数组的下标,没有该数字就返回-1.
接下来是main函数的主体,我们调用这个searchnumber函数,如果最后result函数不等于-1时,就意味着找到该数字了,否则就没有找到该数字。
但是顺序查找的效率太低了,假如给你10000个数字,查找需要很长的时间,所以我们这里推出二分查找,分析如下:
前提:使用二分查找的必须为有序数列(很重要)
1 2 3 4 5 6 7 8 9 10
下标0 1 2 3 4 5 6 7 8 9
假设我们要找7这个数字
1.找出数组的中间元素
(0+9)/2=4;
下标为4对应的数字为5,5<7,则5左边不会有7,则再次从6开始查找,这样查找的范围缩小了一半,所以叫做二分查找或折半查找。
接下来(5+9)/2=7,下标为7对应的是8,因为8比7大,则去掉8后面的数字。
再进行(5+6)/2=5,对应的数字为6,6<7,这样被查找的范围只剩下了7,即7可以被找到。
那完整的代码如下:
相信大家看完之后一定会对数组查找不再害怕喽,快来尝试吧!!!