冒泡排序
来源:互联网 发布:mac版本网游 编辑:程序博客网 时间:2024/06/05 11:47
数组下标 0 1 2 3 4 5
初始数据 55 33 88 66 22 77
第一趟 完 33 55 66 22 77 88
第二趟 完 33 55 22 66 77 88
第三趟 完 33 22 55 66 77 88
第四趟 完 22 33 55 66 77 88
第五趟 完 22 33 55 66 77 88
此数组有6个元素 需要比5趟 (定义变量 j 记录趟数,变量len表示数组元素个数) for(j=0;j<len-1;j++)
每一趟的代码如下(变量i表示每一趟比较的次数)
for(i=0;i;i++)
{
if(arr[i]>arr[i+1])
{
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
但是每一趟比完后都可以确定一个元素的位置,即:
第一趟需要比5次
第二趟需要比4次
第三趟需要比3次
第四趟需要比2次
第五趟需要比1次
优化后代码为:
{
if(arr[i]>arr[i+1])
{
int temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
完整代码如下:
#include<stdio.h>
void main()
{
int i,k,j;
int temp=0;
int arr[]={55,33,88,66,22,77};
int len = sizeof(arr)/sizeof(arr[0]); //len表示数组个数
for(j=0;j<len-1;j++)
{
{
if(arr[i]>arr[i+1]) // if 进行元素比较
{
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
for(k=0;k<len;k++)
{
printf("%d\n",arr[k]);
}
}
阅读全文
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- C++多继承代码理解
- HTML入门4
- 易飞拆解组合单财务处理
- ArcGIS API for JavaScript实现地图双屏联动
- 网易2018校招编程题3
- 冒泡排序
- 【网络编程】netcat使用方法
- Docker导入导出镜像
- JFrame与Frame的区别
- 必备的js调试技巧
- 一位资深程序员大牛给予Java初学者的学习路线建议
- [ 2-SAT 线段树 ] Codeforces Gym 100159 Facebook Hacker Cup 2012 I.Unfriending
- 数据结构实验之数组三:快速转置
- FastReport打印