冒泡排序及其推理方法
来源:互联网 发布:淘宝买家贷款5万怎么贷 编辑:程序博客网 时间:2024/05/01 06:15
/*
5 4 3 2 1
第0轮:4 5 3 2 1
4 3 5 2 1
4 3 2 5 1
4 3 2 1 5
比较4次
第1轮:3 4 2 1 5
3 2 4 1 5
3 2 1 4 5
比较3次
第2轮:2 3 1 4 5
2 1 3 4 5
比较2次
第3轮:1 2 3 4 5
比较1次
一共比较了多少轮? = 长度-1-1
`注意 :实际中应为写双层for循环时一般是以int i = 0;开始,所以轮数一般写为: i < length - 1
//求出长度
int length = sizeof(nums)/sizeof(int);
//遍历
for(int i = 0;i < length - 1;i++){}
如果 i <= length,那么 轮数的控制就要写为 i <=length - 1 - 1
每轮比较的次数 = 长度 - 轮数 - 1
*/
#include <stdio.h>
int main(int argc,const char * argv[]) {
// int nums[] = {10,9,8,7,6,5,4,3,2,1};
int nums[] = {5,4,3,2,1};
int len = sizeof(nums) /sizeof(int);
for (int i=0; i<len; i++) {
printf("%d\n",nums[i]);
}
printf("-------以上是交换之前--------\n");
for (int i=0; i<= len-1-1; i++) {//相当于 i<=3 i= 0,1,2,3
for (int j=0; j<len-i-1; j++) {//相当于 j<=5-0-1; j<4 0 1 2 3
if(nums[j] > nums[j+1] ){//如果当前遍历到的数字>下一个数字
int temp = nums[j];
nums[j] = nums[j+1];//把j的位置,变成了下一个位置的元素
nums[j+1] = temp;//把下一个位置的元素变成了J的元素
}
}
}
for (int i=0; i<len; i++) {
printf("%d\n",nums[i]);
}
return 0;
}
- 冒泡排序及其推理方法
- 浅议冒泡排序及其优化方法
- 基本排序方法之一——冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其优化
- 冒泡排序及其改进
- 冒泡排序及其优化
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其改进
- 冒泡排序及其优化
- 冒泡排序及其优化
- 冒泡排序及其改进
- 冒泡排序及其优化
- 冒泡排序及其优化
- 冒泡排序及其改进
- 冒泡排序及其优化
- 冒泡排序及其优化
- 消失的模拟器
- const int *p, int *const p的区别
- Breadth-First-Search(伪代码)
- C++拷贝构造函数语意学 copy constructor(The Semantics of Constructors)
- 跟着猫哥学Golang[4] - switch
- 冒泡排序及其推理方法
- 控制孩子玩手机的时间(控制儿童使用手机时间)
- Dorado创建HelloWorld项目
- Codeforces Round #327
- JAVA的String 类【转】
- 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
- IOS开发笔记10-字符串-C语言笔记
- JSP 自定义标签:简单标签
- Linux-CentOS 安装XPDF