1 /*
  2     冒泡排序: 效率很低,速度慢...不适合大量数据排序
  3
  4     原理:从左向右扫描数据,选择交大的数据,放在右边,进行交换
  5     关于i和j的说明
  6 */
  7 #include "Bubble.h"
  8 #include <stdio.h>
  9 #include <iostream>
 10 using namespace std;
 11
 12 void BubbleSort(int list[],int n);
 13 void PrintArray(int list[],int n);
 14 void BubbleSortBigToSmall(int list[],int n);
 15 int main()
 16 {
 17
 18     const int nLen=10;
 19     int list[nLen] = {1,3,5,7,9,2,4,6,8,0};
 20
 21
 22     //从小到大排序
 23     cout<<"交换前的数据:    ";
 24     PrintArray(list,nLen);
 25     BubbleSort(list,nLen);
 26     cout<<"\n交换后的数据:    ";
 27     PrintArray(list,nLen);
 28
 29
 30
 31     //从大到小排序
 32     cout<<"\n交换后的数据:    ";
 33     BubbleSortBigToSmall(list,nLen);
 34     PrintArray(list,nLen);
 35
 36
 37     cout<<"\nhello world"<<endl;
 38     system("pause");
 39     return 0;
 40 }
 41
 42
 43 //从小到大排序
 44 void BubbleSort(int list[],int n)
 45 {
 46
 47     for (int i=0;i<n-1;i++)
 48     {
 49         for (int j=0;j<n-1-i;j++)
 50         {
 51             if (list[j] > list[j+1])            // 比较运算符决定 从大到小,还是从小到大排序
 52             {
 53                 std::swap(list[j],list[j+1]);    //这个swap()是c++自带的交换函数
 54             }
 55         }
 56     }
 57
 58     return ;
 59 }
 60
 61
 62 //从大到小排序
 63 void BubbleSortBigToSmall(int list[],int n)
 64 {
 65
 66     for (int i=0;i<n-1;i++)
 67     {
 68         for (int j=0;j<n-1-i;j++)
 69         {
 70             if (list[j] < list[j+1])
 71             {
 72                 std::swap(list[j],list[j+1]);
 73             }
 74         }
 75     }
 76
 77     return ;
 78 }
 79
 80 //打印数组元素
 81 void PrintArray(int list[],int n)
 82 {
 83
 84     for (int i=0;i<n;i++)
 85     {
 86         cout<<list[i]<<"  ";
 87     }
 88
 89     return;
 90 }
 91
 92
 93 //获取数组的长度                这个留着以后来补充,暂时不知道怎么计算数组的长度
 94 int GetArrayLen(int list[])
 95 {
 96     int nSize=0;
 97
 98     while (true)
 99     {
100         //通过异常来捕获越界
101
102         nSize++;
103     }
104
105
106     return nSize;
107 }
108
109
110 //找出数组中的最大数
111 int GetMax(int list[],int nLen)
112 {
113
114     int temp=0;
115     for (int i=0;i<nLen;i++)
116     {
117         if (list[i] > temp)
118         {
119             temp = list[i];
120         }
121     }
122
123     printf("\ntemp=%d\n",temp);
124
125     return temp;
126 }

转载于:https://www.cnblogs.com/Froger/p/6777821.html

2.冒泡排序----还是不懂,先记录下来相关推荐

  1. 数据结构和算法系列5 七大排序之冒泡排序和快速排序

    排序是我们生活中经常会面对的问题.同学们做操时会按照从矮到高排列:老师查看上课出勤情况时,会按学生学号顺序点名:高考录取时,会按成绩总分降序依次录取等.排序是数据处理中经常使用的一种重要的运算,它在我 ...

  2. 冒泡排序及其三种优化方案

    一.传统的冒泡排序: 图解: 代码示例: /** * 传统冒泡排序 * @author Abel */int[] a={3,2,5,8,4,7,6,9}; for(int i=0; i<8; i ...

  3. C语言实现的超详细的冒泡排序(附有详细代码)

    1.冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法.   它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到有 序化;   其 ...

  4. 冒泡排序算法的基本思想

    1.冒泡排序的基本思想 冒泡排序是交换排序中一种简单的排序方法.它的基本思想是对所有相邻记录的关键字值进行比效,如果是逆顺(a[j]>a[j+1]),则将其交换,最终达到有 序化;其处理过程为: ...

  5. PowerShell通过安全组创建计算机账号

    这是一个非常悲伤的需求,整个逻辑弄的我有点吐血,幸运的是终于做完了.由于用到了太多变量,不写备注自己也看不懂,记录一下. 需求是这样的:某个用户位于某个安全组内,安全组在某个OU下.现在需要创建一个新 ...

  6. 编程之美 求数组中的最长递增子序列

    如题,例如:存在数组 1,-1,2,-3,4,-5,6,-7 ,则最长的递增子序列是:1,2,4,6. 法一: 蛮力法 int Lis(int* arr,int n) {int iCount=0;// ...

  7. noj大作业c语言扫雷,noj大作业.doc

    作业名称:算法演示程序学 院:航海学院班 级:学 号:2013300951姓 名:苏和团队组成: 西北工业大学 2015年11月11日 1.问题与背景(描述程序所要解决的问题或应用背景) C语言经过几 ...

  8. java appender_log4j的Appenders配置方法

    因为是刚开始使用log4j,很多配置方面的东西都不懂,记录下. 下面是我用sts(spring tool suite)新建spring mvc项目的时候,帮我自动生成的一个log4j.xml配置文件. ...

  9. 排序算法合集 python

    直接选择.插入排序 直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接插入排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的 ...

最新文章

  1. 第一行代码学习笔记第四章——探究碎片
  2. cpp mysql fetch row_Linux下C++访问MySQL
  3. Spark _07_补充部分算子【二】
  4. [填坑手册]小程序目录结构和组件化使用心得
  5. 基于 Kyma 的企业级云原生应用的扩展案例分享
  6. 在windows服务器开启php的gd库出错
  7. Mysql 在linux下的安装和启动
  8. 中科曙光服务器配置与虚拟系统安装等优化
  9. linux安装matlab(亲测有用)
  10. 教你用python爬虫下载1w+『ppt模板』
  11. OneNote解决字体不同的问题【完美解决】
  12. python 中文乱码问题深入分析
  13. 常用的几种集合(Map另写)
  14. 数据库的主要设计步骤
  15. T字形路口小车如何要c语言编程,一点通驾校模拟考试
  16. ARM 相关概念及知识随笔
  17. chrome浏览器主页被劫持
  18. 关于Informatica的使用(转载)
  19. java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)
  20. 基于php+mysql的房屋销售管理系统

热门文章

  1. 目前大多数个人计算机中可配置,2018年自考《计算机组成原理》试题五
  2. 计算机科学与技术考研考西南交通大学,西南交大计算机科学与技术考研怎么样...
  3. whitepages 被调查_槐荫区美里湖办事处残联开展2020年残疾人精准服务需求调查工作...
  4. sql递归查询上级_递归的实际业务场景之MySQL 递归查询
  5. 网易高并发优化 | 公开课-02
  6. 代理模式的原理解析入门
  7. spark mlib坐标矩阵(Coordinate Matrix)
  8. Spark面试题梳理
  9. 截至2006年3月1日全球CCIE人数统计
  10. 以变制变——前端动态化代码保护方案探索