算法与数据结构
RoadToGeek
A Man want to become a Geek.
展开
-
查找与排序之二分法查找篇(C语言实现)
相比线性查找,二分法查找则显得十分高效,其查找次数与总元素数量存在对数关系,即只要较少的查找次数就可以完成快速地搜索。下面实现二分法查找: 原理:在进行二分法查找前需要先对数据进行排序(具体排序实现详见下一篇文章),定义left(数据集的开头),right(数据集结尾)两个变量,然后在这组数据中找到mid=(left+right)/2,然后将待查找元素与mid所指元素进行比较,如果相等将索引返回原创 2016-03-21 20:59:04 · 50595 阅读 · 3 评论 -
查找与排序之冒泡排序篇(C语言实现)
上节学习了二分法查找,然而二分法查找却基于排序的前提下产生,于是学习排序算法十分必要。事实上,排序算法是算法中基础的一项,下面从冒泡排序开始学习。 关于冒泡排序的实现原理不多加阐述,其实现基于相邻两数交换沉底的方法,具体自行查询百度。冒泡排序动画展示(引用至student.zjzk.cn):冒泡排序动画展示 下面实现冒泡排序: #include #include #include in原创 2016-03-22 21:17:05 · 902 阅读 · 0 评论 -
排序与查找之线性查找篇(C语言实现)
线性查找是从某个类型的列表的表头开始依次比较目标元素与每一个值,直至找到该目标元素。其结果只有两个:要么找到目标(返回索引),要么到达列表尾并得出改组中不存在该目标的结论,下面开始实现。#include int search(int aim,int a[],int size);//声明方法 int main(){ //测试search int a[]={1,5,3,7,6,9,10}; pr原创 2016-03-21 19:59:26 · 1790 阅读 · 1 评论