当前位置: 首页 > news >正文

C语言基础_排序算法和二分法查找

0、排序算法_选择排序:

  • 概念:每次排序把未排序序列当中的极值找出来放到前面
// 以从大到小排序为例
#include<stdio.h>
#define SZ 5int main() {int a[SZ] = { 1,5,4,2,3 };// 选择排序(从大到小)int i, j, Max, Max_p,tem;for (i = 0; i <= ((sizeof(a) / sizeof(a[0])) - 2); i++) {Max = a[i];Max_p = i;// 找当前一轮中的最大值for (j = i + 1; j <= ((sizeof(a) / sizeof(a[0])) - 1); j++) {if (a[j] > Max) {Max_p = j;Max = a[j];}}// 替换最左边元素tem = a[i];a[i] = a[Max_p];a[Max_p] = tem;printf("第%d轮Max:%d\n", i,Max);}printf("===========");for (i = 0; i < SZ; i++) {printf("%d  ", a[i]);} // 5  4  3  2  1return 0;
}

1、排序算法_冒泡排序:

  • 概念:每次排序把未排序序列当中的极值找出来放到前面
// 以从大到小排序为例
// 冒泡排序(从大到小)
#include<stdio.h>
int main(){
int i, j,tem;
for (i = 0; i < SZ - 1; i++) {for (j = 0; j < SZ-i; j++) {if (a[j] < a[j + 1]) {tem = a[j];a[j] = a[j + 1];a[j + 1] = tem;}}
}
for (i = 0; i < SZ; i++) {printf("%d  ", a[i]);
}
return 0}

2、排序算法_插入排序:

  • 概念:每次排序把未排序序列当中的极值找出来放到前面
// 以从大到小排序为例
#include<stdio.h>
int main(){int a[SZ] = { 1,5,4,2,3 };// 插入排序(从大到小)int i,j, tem;for (i = 1; i <= SZ - 1; i++) {// 有序序列中小的值右移,直到找到大于当前数的值,插入tem = a[i];j = i;while (j>0) {if (a[j-1] < a[j]) {tem = a[j];a[j] = a[j - 1];a[j - 1] = tem;}j--;}}for (i = 0; i < SZ; i++) {printf("%d  ", a[i]);}return 0;
}

3、建立在有序序列基础之上的查找方法:二分法查找

  • 思路,设置三个变量分别指向序列的最小值,中间值和最大值,每次循环就判断要查找的数值比中间值大还是比中间值小,移动最小值和最大值的位置,每次都能排除一半留下一半。


总结:

  • 加强对算法的练习,能够提升对语言的理解。
http://www.dtcms.com/a/317295.html

相关文章:

  • TDengine IDMP 背后的技术三问:目录、标准与情景
  • 自学嵌入式 day43 中断系统
  • 1-知识图谱—知识图谱表示与建模:给知识 “搭框架”,让每句话都有条理
  • Java学习第一百一十一部分——Jenkins(二)
  • 开源流媒体服务器ZLMediaKit 的Java Api实现的Java版ZLMediaKit流媒体服务器-二开视频对话
  • 周鸿祎:AI 时代安全智能体,能否重塑数字安全格局?
  • 【数据库】Oracle学习笔记整理之一:ORACLE的核心组成部分
  • 亚矩阵云手机:解锁 Shopee/Lazada 东南亚电商运营“通关密码
  • Cortex-M MCU 默认的分散加载文件分析
  • CSS高频属性速查指南
  • SG105 Pro 网管交换机的3种VLAN配置
  • Uniapp生物识别(SOTER)
  • 什么是逻辑外键?我们要怎么实现逻辑外键?
  • 【C++详解】STL-set和map的介绍和使用样例、pair类型介绍、序列式容器和关联式容器
  • sqli-labs靶场less40-less45
  • uniapp 通用地磅称重系统手机端
  • 生成网站sitemap.xml地图教程
  • android 设置字体样式
  • QT----QAxObject在子线程中调用,发现excel指针为空
  • NCD57080CDR2G 安森美onsemi 通用驱动器, SOIC, 8针, 20V电源, 8 A输出NCD57080CDR2电流隔离式栅极驱动器
  • Excel制作尖刀图,直观展示业绩涨跌
  • 【Excel】通过Index函数向下拖动单元格并【重复引用/循环引用】数据源
  • Unity模型显示在UI上
  • mysql 8递归查询
  • AMD二季度净利润同比下降31%
  • 企业级建模平台Sparx EA的云服务实现全域架构协同
  • imx6ull-驱动开发篇11——gpio子系统
  • django permission_classes = [AllowAny] 如何限制到具体接口
  • 得物向量数据库落地实践
  • 智慧二次供水管理系统解决方案:城市供水“最后一公里”