C语言编程:选择法、冒泡法排序与折半查找示例
需积分: 9 152 浏览量
更新于2024-09-21
1
收藏 145KB DOC 举报
"C语言编程经典例子"
C语言是一种强大的、高效且广泛应用的编程语言,尤其在系统编程、软件开发和嵌入式系统中占据重要地位。以下三个例子展示了C语言在排序和查找算法中的应用:
1. **选择法排序(Selection Sort)**
选择法排序是一种简单直观的排序算法,其主要思想是找到数组中最小的元素并将其放到正确的位置,然后对剩下的元素重复此过程。在C语言实现中,这个过程由两层循环完成。外层循环控制排序的轮数,内层循环则负责在未排序部分找到最小元素并将其与当前位置的元素交换。这种方法的时间复杂度为O(n^2),不适用于大数据量的排序。
```c
for(i=0; i<10; i++) // 外层循环
{
for(j=i+1; j<10; j++) // 内层循环
if(a[j]<a[i]) // 比较并交换
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
```
2. **冒泡法排序(Bubble Sort)**
冒泡法排序是另一种简单的排序算法,它通过重复遍历数组,每次比较相邻元素并根据需要交换它们来逐步排序。C语言实现同样采用两层循环,外层控制轮数,内层控制相邻元素的比较和交换。同样,时间复杂度为O(n^2)。
```c
for(i=0; i<9; i++) // 外层循环
{
for(j=0; j<9-i; j++) // 内层循环
if(a[j]>a[j+1]) // 交换相邻元素
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
```
3. **折半法查找(Binary Search)**
折半法查找,又称二分查找,适用于有序数组。它通过不断地将数组范围减半,快速定位目标元素。基本步骤是先找到数组中间元素,与目标值比较,如果目标值小于中间元素,则在左半部分查找,反之在右半部分查找,直到找到目标元素或搜索范围为空。
```c
while (low <= high)
{
mid = (low + high) / 2;
if (array[mid] == target)
return mid;
else if (array[mid] < target)
low = mid + 1;
else
high = mid - 1;
}
// 如果未找到,返回-1表示不存在
return -1;
```
折半查找的效率显著高于线性查找,其时间复杂度为O(log n)。
这三个例子展示了C语言的基础编程技巧,包括数组操作、条件判断、循环控制以及基本的算法实现。掌握这些基础概念和技巧对于深入学习C语言和理解更复杂的算法至关重要。
2009-01-03 上传
2010-12-04 上传
106 浏览量
2007-08-12 上传
2009-04-07 上传
2010-07-24 上传
2023-03-09 上传
飞龙无敌
- 粉丝: 0
- 资源: 34
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常