一、冒泡排序算法:

void Bubblesort(int arry[],int len)//冒泡排序算法 ,len为数组长度
{int i,j;for(i=0;i<len-1;i++){for(j=i+1;j<len;j++){if(arry[j]<arry[i]){int temp=arry[i];arry[i]=arry[j];arry[j]=temp;}}}
}

二、选择排序算法:

void Selectsort(int arry[],int len) //选择排序算法
{int i,j;for(i=0;i<len-1;i++){int loc=i;for(j=i+1;j<len;j++){if(arry[j]<arry[loc]){loc=j;}}if(loc!=i){int temp=arry[i];arry[i]=arry[loc];arry[loc]=temp;}}
}

三、直接插入排序算法:

void Insertionsort(int arry[],int len)//直接插入排序算法
{int i,j;for(i=1;i<len;i++){int temp=arry[i];for(j=i-1;j>=0&&arry[j]>temp;j--){arry[j+1]=arry[j];}arry[j+1]=temp;}
}

四、希尔排序算法:

void Shellsort(int arry[],int len) //希尔排序算法 (缩小间距的排序)
{int x,i,j;int d=len; //间距d while(d>1){d=d/2;for(x=0;x<d;x++){for(i=x+d;i<len;i++){int temp=arry[i];for(j=i-d;j>=0&&arry[j]>temp;j-=d){arry[j+d]=arry[j];}arry[j+d]=temp;}}}
}

五、快速排序算法:

int fun(int arry[],int low,int high);//函数声明
void Quicksort(int arry[],int low,int high) //快速排序算法 、分治与递归
{int loc;if(low<high){loc=fun(arry,low,high);Quicksort(arry,low,loc-1);Quicksort(arry,loc+1,high);}
}
int fun(int arry[],int low,int high)
{int temp=arry[low];while(low<high){while(low<high&&arry[high]>=temp){high--;}arry[low]=arry[high];while(low<high&&arry[low]<=temp){low++;}arry[high]=arry[low];}arry[low]=temp;return low;
}

六、二元归并排序算法:

void Merge(int arry[],int low,int mid,int high,int temparry[]);//函数声明
void Mergesort(int arry[],int low,int high,int temparry[])//二元归并算法, 分治与递归
{int mid;if(low<high){mid=(low+high)/2;Mergesort(arry,low,mid,temparry);//左边归并排序 Mergesort(arry,mid+1,high,temparry);//右边归并排序 Merge(arry,low,mid,high,temparry);//将两个有序子数组合并  }
}
void Merge(int arry[],int low,int mid,int high,int temparry[])
{int i=low;//左序列指针 int j=mid+1;//右序列指针 int t=0;//临时数组指针 while(i<=mid&&j<=high){if(arry[i]<=arry[j]){temparry[t++]=arry[i++];}else{temparry[t++]=arry[j++]; }}while(i<=mid)//将左端剩余的数放进临时数组 {temparry[t++]=arry[i++];} while(j<=high)//将右端剩余的数放进临时数组 {temparry[t++]=arry[j++];}t=0;while(low<=high)//将临时数组的数放进arry数组 {arry[low++]=temparry[t++];}
}

七、折半查找(二分法查找)

int BinarySearch(int arr[],int key,int len) //二分法查找(顺序表)
{int low=0,high=len-1,mid;while(low<=high){mid=(low+high)/2;if(arr[mid]==key)return mid;//返回数组下标 else if(arr[mid]<key)low=mid+1;else if(arr[mid]>key)high=mid-1;}return -1;
}

八、折半查找的递归算法:

int BinarySearch(int arr[],int key,int low,int high)//折半查找的递归做法
{if(low>high){return -1;       //没有找到返回-1; }else{int mid=(low+high)/2;if(arr[mid]==key)return mid;else if(arr[mid]>key){BinarySearch(arr,key,low,mid-1);}else if(arr[mid]<key){BinarySearch(arr,key,mid+1,high);}}
}

九、顺序查找:

int Ssearch(int arr[],int key,int len)//顺序查找算法
{int i;for(i=0;i<len;i++){if(arr[i]==key)return i;//返回数组下标 }return -1;//没有找到返回-1
}

六大排序算法与常见的两大查找算法汇总(C语言)相关推荐

  1. 数据结构与算法【Java】06---七大查找算法总结

    文章目录 数据结构与算法[Java]06---查找算法总结 1.查找算法简介 1.1.查找的定义 1.2.查找算法分类 1.3.常用查找算法 2.线性查找算法 2.1.线性查找简介 2.2.线性查找代 ...

  2. 机器学习笔记——2 简单线性模型及局部加权线性模型的基本原理和python实现(参数估计的两个基本角度:几何直观和概率直观。函数最值问题的两大基本算法:梯度方法与迭代方法)

    简单线性模型及局部加权线性模型的基本原理和python实现(参数估计的两个基本角度:几何直观和概率直观.函数最值问题的两大基本算法:梯度方法与迭代方法) 线性模型是什么? 线性模型是监督学习的各类学习 ...

  3. 【数据结构与算法】插值查找算法、斐波那契查找算法(黄金分割法)的介绍和程序实现

    目录 1. 插值查找算法 1.1 插值查找算法的介绍 1.2 插值查找算法的程序实现 2. 斐波那契查找算法 2.1 斐波那契查找算法的介绍 2.2 斐波那契查找算法的程序实现 1. 插值查找算法 1 ...

  4. 手把手教你软渲染 #2 - 两大直线算法

    前言 众所周知,模型是由很多个小三角面组成的,而三角面又是由三条边组成的,所以要想渲染模型,第一步是画直线.这一节要详细讲三个经典的直线算法. 在上一讲中我们讨论了如何用 xmake 来做跨平台的编译 ...

  5. dijkstra算法原理_这 10 大基础算法,程序员必知必会!

    来源:博客园原文地址:http://kb.cnblogs.com/page/210687/算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序n个项目要Ο(nlogn)次 ...

  6. 大数据算法_荆州2020年大数据算法章节答案-老友网

    荆州2020年大数据算法章节答案 动轴承内圈与轴颈的配合以及外圈与座孔的配合???.代号为30108,30208,30308的滚动轴承的???????不相同._____是只能承受径向载荷的轴承.代号为 ...

  7. 数据结构与算法笔记(十二)—— 查找算法(顺序查找、二分法查找)

    搜索是在一个项目集合中找到一个特定项目的算法过程.搜索通常的答案是真的或假的,因为该项目是否存在.搜索的几种常见方法:顺序查找.二分法查找.二叉树查找.哈希查找 一.顺序查找 最基本的查找技术,过程: ...

  8. 二分算法php,使用PHP实现二分查找算法代码分享

    第一种方法: [二分查找要求]:1.必须采用顺序存储结构 2.必须按关键字大小有序排列. [优缺点]折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难.因 ...

  9. 二分查找算法python实现_Python实现-二分查找算法(3种方法)

    如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? lst = [2, 3, 5, 10, 15, 16, 18, 22, 26, 30, 32, 35, 41, 42, 43, 55, ...

最新文章

  1. idea ssm框架 mysql_idea搭建简单ssm框架的最详细教程(新)
  2. 直播预告 | STC单车拉力组专题培训
  3. GODADDY主机用tar命令通过SSH远程打包20M以上的文件
  4. 【控制】《多智能体机器人系统信息融合与协调》范波老师-第8章-Agent 技术在机器人智能控制系统的应用
  5. MySQL数据库优化技巧
  6. Zookeeper的api的简单使用(转载)
  7. Python 中操作 MySQL 步骤
  8. hbuilder制作简单网页_企业信息化网站+营销服务之电子商务网站制作流程
  9. 每个计算机主机有且只能有一块硬盘对不对,电子科技大学计算机基础试卷.doc...
  10. java 反射技术实例,什么是反射技术?Java中最常用的反射技术实例
  11. 用 扩展事件抓取过去的死锁
  12. vs2010中正确加载gif格式图片
  13. CF1076C Meme Problem(韦达定理)
  14. Linux下安装lsof
  15. 【瑞萨RA4系列】使用TinyMaix识别手写数字
  16. ASP.NET Web程序设计 第六章 三层架构
  17. 浙江万里学院计算机期末考,期末复习看这一篇推送就够了
  18. PTA甲级 1109 Group Photo (25point(s))
  19. 关于 laravel-wechat / easywechat-composer 装不上问题
  20. 重启电脑后MySQL数据丢失_为什么当我重启电脑时会出现数据丢失?

热门文章

  1. NAS协议--EMM状态与行为
  2. Python2.7对接科大讯飞的语音合成和语音识别接口
  3. Mac系统homebrew安装MySQL等环境
  4. PAT-1062 Talent and Virtue
  5. Emacs 主题设置
  6. jieba库与中文分词
  7. 锁与并发工具包与线程池与LockSupport与Fork/Join框架与并行流串行流与阻塞队列与JPS,jstack命令查看死锁查看线程状态与AQS个人笔记九
  8. 信息学奥赛一本通(c++):1405:质数的和与积
  9. 2020,直播电商“变轨”加速
  10. 火狐首页被360主页劫持的解决方案