排序之冒泡排序
来源:互联网 发布:九章算法强化班 视频 编辑:程序博客网 时间:2024/06/14 23:38
冒泡排序主要思想是,依次比较分别获得每趟中未排序的最大值或最小值
伪代码:
BubbleSort(int *A,int n)
flag=1;
while flag //每次遍历时,若存在逆序对,必须重新排序,直至全部有序为止
flag=0
for i from N-1 to 1
if A[i-1]>A[i] //存在逆序对,则需要将标志位标出
swap(A[i],A[i-1])
flag=1
这里算法稳定,因为>,如果改为>=,则说明相等时也要交换,则会改变该算法的稳定性
这里每次都要遍历已经排好序的部分,可以稍作处理,用变量标记未排序部分的起始下标
BubbleSort1(int *A,int n)
flag=1;
i=0;
while flag
flag=0;
for j from N-1 to i+1
if(A[j]
#include<iostream>#include<algorithm>using namespace std;void Print_Bubble(int *A, int n){ int i = 0; for (i = 0; i < n; ++i) { if (i>0) cout << " "; cout << A[i]; } cout << endl;}int BubbleSort(int *A, int n){ int flag = 1; int i = 0,k=0; int j; while (flag) { flag = 0; Print_Bubble(A, n); for (j = n - 1; j > i; --j) { if (A[j] < A[j - 1]) { flag = 1; swap(A[j - 1], A[j]); k++; } } } return k;}int main(int argc, char* argv[]){ int N, i, j; int A[100]; cin >> N; for (i = 0; i < N; ++i) cin >> A[i]; j=BubbleSort(A, N); cout << "the reverse number of the Array is:" << j << endl; system("PAUSE"); return 0;}
阅读全文
0 0
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 冒泡排序之排序
- 排序之 冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- 排序之冒泡排序
- linux 自动清除三天日志脚本
- Elasticsearch相关操作梳理
- ElasticSearch学习笔记(五)在logstash中配置分词器和同义词过滤器
- React构建单页应用方法与实例
- 1.2云存储标准的特性
- 排序之冒泡排序
- 解决cin因为输入错误的数据类型进入死循环的问题
- DNF的SPK文件解析笔记
- 留存类活动需要注意哪些问题?
- acm 0和5
- 获取手机权限是否开启
- Android之Bitmap二次采样 (压缩)
- k近邻算法
- bzoj1821部落划分