C++学习记录10--冒泡排序
来源:互联网 发布:阿里云怎么禁止ip访问 编辑:程序博客网 时间:2024/06/05 15:01
冒泡排序(bubble sort)是最基本的排序方法,总结一下,对于有n个元素的数组,有两种方式:从左向右或从右向左冒泡:
一、从前往后
每次趟锁定该趟末尾的元素,重点2/2/2,i<n-1,j<n-1-i
。
1、从小到大排序。
#include<iostream>#include<stdlib.h>#include<time.h>using namespace std;void coutarray(int a[]){ for(int i=0;i<20;i++) cout<<a[i]<<(i%5==4?'\n':'\t');}void bubble1(int a[],int n){ bool flag=true; int temp; for(int i=0;i<n-1&&flag;i++) { flag=false; for(int j=0;j<n-1-i;j++) if(a[j]>a[j+1]) { temp=a[j],a[j]=a[j+1],a[j+1]=temp; flag=true; } }}void main(){ int a[20]={0}; int n=10; srand(time(0)); for(int i=0;i<n;i++) cout<<(a[i]=rand()%101)<<(i%5==4?'\n':'\t'); bubble1(a,20); cout<<"从前往后冒大泡到数组尾(从小到大):\n"; coutarray(a);}
2、从大到小排序。
void bubble2(int a[],int n){ bool flag=true; int temp; for(int i=0;i<n-1&&flag;i++) { flag=false; for(int j=0;j<n-1-i;j++) if(a[j]<a[j+1]) { temp=a[j],a[j]=a[j+1],a[j+1]=temp; flag=true; } }}
二、从后往前
每次趟锁定该趟最前端元素,重点i=n-1,j>n-1-i
。
1、从小到大排序。
void bubble3(int a[],int n){ bool flag=true; int temp; for(int i=n-1;i>0&&flag;i--) { flag=false; for(int j=n-1;j>n-1-i;j--) if(a[j]>a[j-1]) { temp=a[j],a[j]=a[j-1],a[j-1]=temp; flag=true; } }}
2、从小到大排序。
void bubble4(int a[],int n){ bool flag=true; int temp; for(int i=n-1;i>0&&flag;i--) { flag=false; for(int j=n-1;j>n-1-i;j--) if(a[j]<a[j-1]) { temp=a[j],a[j]=a[j-1],a[j-1]=temp; flag=true; } }}
0 0
- C++学习记录10--冒泡排序
- java学习记录——冒泡排序
- 冒泡排序再学习改进冒泡排序(c++)
- 记录自已学习之排序算法(冒泡排序)
- C语言学习之冒泡排序
- 从头学习linux C 冒泡法排序
- C/C++学习(五)冒泡排序
- 从头学习linux C 冒泡法排序
- C学习笔记——冒泡排序
- 从头学习linux C 冒泡法排序
- 记录一笔-冒泡排序
- MFC学习记录--冒泡排序与二分查找法
- Linux C学习笔记-排序算法2-冒泡排序
- C#:冒泡排序
- 冒泡排序 C数据结构
- 冒泡排序 C源码
- 冒泡排序(C#)
- 冒泡排序实例(C#)
- 第16题:3Sum Closest
- Unity3d学习笔记(2)--一个太阳系的实现
- C# 利用Rar压缩文件并FTP上传
- .NET框架-微软C#编程风格官方指南
- SQL学习01
- C++学习记录10--冒泡排序
- svm学习笔记1
- cordova 插件调用activity和结果返回
- 上拉电阻与下拉电阻的作用和区别
- MyBatis学习二 MyBatis的配置文件详解
- Minimum Time Difference
- uboot主Makefile分析
- WARNING: Subscription for node down event still pending
- 昨天的博客突然不见了............