冒泡排序(初级版)之C++实现

冒泡排序(初级版)之C++实现

一、源代码:BubbleSortLow.cpp

 1 /*冒泡排序思想:
 2 从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面;
 3 一轮比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。
 4 n个数,经过n-1轮比较后完成排序。
 5 */
 6 #include<iostream>
 7 using namespace std;
 8
 9 /*定义输出一维数组的函数*/
10 void print(int array[], int n)
11 {
12     for (int i = 0; i < n; i++)
13     {
14         cout << array[i] << " ";
15     }
16     cout << endl;
17 }
18
19 /*定义冒泡排序的函数,升序排序,返回交换次数*/
20 int bubbleSort(int array[],int n)
21 {
22     //定义变量,记录交换次数
23     int count = 0;
24     //定义中间变量temp
25     int temp;
26     //遍历数组(进行排序)
27     cout << "开始对数组进行排序了..." << endl;
28     for (int i = 0; i < n; i++)
29     {
30         for (int j = 0; j < n - 1 - i; j++)
31         {
32             cout << "第" << (i + 1) << "趟第" << (j + 1) << "次排序" << endl;
33             //如果左边的数大于右边的数就进行交换顺序
34             if (array[j] > array[j + 1])
35             {
36                 temp = array[j];
37                 array[j] = array[j + 1];
38                 array[j + 1] = temp;
39                 cout << array[j] << "和" << array[j + 1] << "互换了" << endl;
40                 //输出此时数组的顺序
41                 cout << "数组此时的顺序是:";
42                 print(array, 10);
43                 //每交换一次,记录数加1
44                 count++;
45             }
46         }
47     }
48     cout << "数组排序结束了..." << endl;
49     return count;
50 }
51
52 int main()
53 {
54     //定义待排序的一维数组
55     int array[] = { 1, 3, 4, 5, 2, 6, 10, 9, 8, 7 };
56     //输出原始数组
57     cout << "原始数组是:" << endl;
58     print(array, 10);
59     //对数组进行排序
60     int count = bubbleSort(array, 10);
61     //输出排序后的数组
62     cout << "排序后的数组是:" << endl;
63     print(array, 10);
64     cout << "共交换" << count << "次" << endl;
65 }

二、运行结果

时间: 2024-10-11 22:21:51

冒泡排序(初级版)之C++实现的相关文章

Spring IOC原理(初级版)

Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开发.从简单性.可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益. ------------------------------------------------------------↑ 以上都是废话,我也不懂 ↑   ↓ 下面是整体架构,可以略过 ↓ ----------------------

java集合框架小结(初级版)

今天大概的整理了一下java集合框架,在这里做一个小结,方便以后查阅,本博文主要参考资料为<java编程思想第四版>第11章——持有对象以及JAVA 1.6 API文档.并没有研究更深入的第17章<容器深入研究>.大概介绍了集合框架中几个比较常用的集合类. 以下为正文. 首先来看一张图,不太会用visio,画的可能不太好看 图中将接口.抽象类.实现类.淘汰类(圆角矩形)进行标注.有直线连接的类(或接口)表示是子类关系或者实现关系 由图示可以看出,集合类主要有两个集合接口: 1.Co

直接插入排序(初级版)之C++实现

直接插入排序(初级版)之C++实现 一.源代码:InsertSortLow.cpp 1 /*直接插入排序思想: 2 假设待排序的记录存放在数组R[1..n]中.初始时,R[1]自成1个有序区,无序区为R[2..n]. 3 从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区. 4 */ 5 6 #include<iostream> 7 using namespace std; 8 /*定义输出一维数组的函数*/ 9 void print(int

逗比之——程序员装逼手册1(初级版)

一.准备工作 "工欲善其事必先利其器." 1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好.一个用来查资料,一个用来写代码.总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善.沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子. 4.工具书,orelly的,机械工业,电子工业什么的都可以,能英文就英文,不行影印版的也可以,反正越厚越好,而且千万不要放在书架上,一定要堆

【github】github 使用教程初级版

github 是一个基于 git 的代码托管平台,付费用户可以建私人仓库,免费用户只能使用公共仓库.对于一般人来说公共仓库就已经足够了,而且也没多少代码来管理.下面简单介绍如何使用 github,供初学者参考. 一.建立仓库 点击右上角加号,选择 New repository,如图所示: 然后填写仓库名称,选上 Initialize this repository with a README,这个意思是在建立仓库时自动生成 README.md 文件,最后 Create repository,如图

[osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)

由于受够了OE的漫游器,想搞个可以在全球飞行的漫游器,所以就做了一个: 请无视我的起名规则······ 类头文件:EarthWalkManipulator.h #pragma once //南水之源 20180101 #include <osgGA/CameraManipulator> #include <osgEarth/MapNode> #include <osgEarth/Viewpoint> #include <osgEarth/GeoData> c

学籍管理系统(Java初级版)

import java.util.Scanner; /**  * 学籍管理系统  * @author Tanker  * @version 4.6.0  */  public class XueJiSystem {     //Java 入口 public static void main(String[] args) {      Scanner sc=new Scanner(System.in); //控制台输入 System.out.println("欢迎来到本学籍管理系统!")

IIS接收浏览器请求报文并将请求报文转给asp.net框架的过程(初级版)

网站的页面大致分为两类: 一.静态页面 二.动态页面 所谓的静态页面与动态页面,并不是依据页面内容的动与静来加以区分的,而是看服务器对页面的处理方式来判断的. 通过浏览器访问服务器上的一个html页面,IIS服务器接收到来自浏览器的http请求,判断请求的页面类型,发现是html文件,IIS直接读取硬盘里的html文件 返回给浏览器,浏览器拿到页面后直接渲染展示. 通过浏览器访问服务器上的一个.ashx或者.aspx后缀的页面时,IIS服务器接收到来自浏览器的http请求,发现后缀是.ashx或

初级版迷宫问题(栈的应用)

  /*  (一)初级迷宫问题:   0:代表通   1:代表不通   求迷宫的通路  (二)步骤:   1.创建迷宫      * 从文件中读取迷宫      * 开辟二维数组存放迷宫   2.寻找通路      * 检查某位置是否为通      * 出口位置判断      * 走过的路用2标记      * 利用栈回溯  (三)问题   1.解决回溯中重复探测:递归   2.最优解:迷宫的最短通路 */ #include <iostream> #include <stdlib.h&g