C语言数组常见算法

C语言数组常见算法

1.基本查找/顺序查找

1.核心思路:从数组0索引开始,依次往后查找,若找到就会返回数据对应索引,若没找到,返 回-1

实操实例:

2.二分查找/折半查找

1.前提条件:数组中的数据必须是有序的

2.核心逻辑:每次排除一半查找范围

3.步骤

1.定义min和max为最小索引和最大索引

2.min和max表示当前要查找的范围

3.定义mid为min和max的平均数

4.要查找的元素在mid左边,缩小范围时,min不变,max=mid+1

5.要查找的元素在mid的右边,缩小范围时,max不变,min=mid+1

实操实例:

3.插值查找

1.本质:二分查找改进

2.公式

3.要求:数据要有序,且数据分布尽可能均匀一点

4.优势:满足要求:效率比二分查找快,否则反而会更慢

4.分块查找

1.原则

1.前一块中最大的数据,小于后一块中所有的数据(块内无序,块间有序)

2.快数数量一般等于数字的个数开根号

2.核心思路:先确定要查找的元素在那一块,然后再块内挨个查找

5.冒泡排序

1.核心思想:相邻的两数据比较,小的放前面,大的放后面

2.思路:

6.选择排序

1.从0索引开始,拿着每一个索引上的元素跟后面的元素依次比较,小的放前面,大的放后面, 依次类推

2.思路:

实操实例: