C语言的冒泡代码
来源:互联网 发布:iphone移动数据怎么关 编辑:程序博客网 时间:2024/04/30 06:06
// 数组排序
/*
数组排序:
数组中存放的是数据,如同随机数一样,数组里的数据是无序的但是很多情况下我们都需要一组有序的数据,这个时候就用到了排序
常见的排序方法:
1 冒泡排序--(入门级的排序算法)
2 选择排序--(相对来说性能好点)
3 快速排序--(面试最常出的题)
4 其他的,例如,基数排序,计数排序,桶排序,堆排序,哈希排序。。。。。可以搜索(13种排序详解)舞动的排序
冒泡排序:
实现思路:从左到右,执行多次循环,每次循环,也是从左到右,每次比较相邻两个数之间的大小,如果需要交换(是否从大到小),就执 行交换
用代码书写冒泡排序?
举个例子,找规律
9 7 14 3
第一趟
第一次;7 9 14 3
第二次:7 9 14 3
第三次:7 9 3 14
第二趟
第一次:7 9 3 14
第二次:7 3 9 14
第三趟
第一次:3 7 9 14
一共四个数,一共比较了三遍,每趟比较了 4-趟数
*/
//冒泡
int main() {/*
int arr[] = { 9 , 4 , 13 , 5}; //定义一个数组
for (int i = 0; i < 4 - 1; i++) { //确定有几趟
for (int j = 0; j < 4 - 1 - i; j++) { //确定对应的第 i 趟 的 第 j 次
if (arr[j] > arr[j+1]) { //判断是否需要交换
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp ; //进行交换
}
}
}
for (int i = 0; i < 4; i++) { //
printf("%d ",arr[i]); //输出交换后的数组
}
*/
冒泡的优化,减少次数的运行
int arr[] = {3,5,9,4,21,19,16,32};
for (int i = 0; i < 8-1; i++) {
printf("运行到第几趟%d\n",i);
BOOL flag = YES ; //给个BOOL类型,每趟都赋予YES
for (int j = 0; j < 8 - 1 -i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j] ;
arr[j] = arr[j+1] ;
arr[j+1] = temp ;
flag = NO ; //需要排序交换的赋予NO
}
}
if (flag == YES) {
break ; //当已不再需要交换的时候,break跳出循环
}
}
for (int i = 0; i < 8; i++) {
printf("%d ",arr[i]);
}
*/
0 0
- C语言的冒泡代码
- 冒泡排序的C语言代码
- 冒泡排序C语言代码
- C语言冒泡排序算法及代码
- 冒泡排序法C语言代码
- C语言的冒泡排序
- C语言的冒泡排序
- C语言的冒泡排序
- c语言的冒泡排序
- c 语言的 冒泡排序
- c语言的经典算法-冒泡排序
- 冒泡排序算法的c语言实现
- 冒泡排序的C语言实现
- 纯C语言写的冒泡排序
- C语言的冒泡排序法改进
- iOS中C语言的冒泡排序
- c语言版本的冒泡法
- C语言之简单的冒泡
- SVN安装---本机安装---SVN仓库(2)
- AlertDialog的几种使用形式
- hdu 5116 dp
- UVA 11324 The Largest Clique(tarjan有向图强连通+缩点)
- Linux远程管理工具
- C语言的冒泡代码
- 打印N个数的全排列
- Html学习笔记2
- java内部类的使用小结
- HDU 5025
- C++11系列学习之七---------初始化列表
- Android 四大组件之一:Service 后台运行
- 使用udp协议给飞Q发送消息
- 第一页,现在的自己写给未来的我。