八大算法~冒泡排序【加变量flag的作用】

1,冒泡排序思想:从第一个数开始找,要把大数“排除在外”~为大数找后座。(从小到大排序哈)

  外层循环~需要放后的大数个数;
    内循环~从第一个数拿起与后面位置的数两两比较,实力强的占的位置靠后。

2,flag变量作用:优化算法,提升效率,从第一个位置开始没有发生交换,
说明后座都已经被对应实力的大数占完,不必再为大数找后座了。
void BubbleSort(int a[],int n){
int temp;
boolean flag = true; // 此处flag变量的设置可以提高算法的效率
//冒泡思想:从第一个数开始找,要把大数“排除在外”~为大数找后座
for(int i = 0; i < n - 1; i++){ //外层循环~需要放后的大数个数
flag = true;
for(int j = 0; j < n - 1 - i; j++){//内循环~从第一个数拿起与后面位置的数两两比较,实力强的占的位置靠后
if(a[j] > a[j + 1]){
flag = false;
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
if(flag==true) break;
}
}
//flag 作用是为了优化算法,提升效率,,从第一个位置开始没有发生交换,说明后座都已经被对应实力的大数占完,不必再为大数找后座了 

八大排序算法~冒泡排序【加变量flag的作用】的更多相关文章

  1. 八大排序算法——冒泡排序(动图演示 思路分析 实例代码java 复杂度分析)

    一.动图演示 二.思路分析 1.  相邻两个数两两相比,n[i]跟n[j+1]比,如果n[i]>n[j+1],则将连个数进行交换, 2.  j++, 重复以上步骤,第一趟结束后,最大数就会被确定 ...

  2. 八大排序算法~简单选择排序【记录下标k变量的作用】

    八大排序算法~简单选择排序[记录下标k变量的作用] 1,思想:打擂台法,数组中的前n-1个元素依次上擂台"装嫩",后边的元素一个挨着一个不服,一个一个上去换掉它 2,优化:通过记录 ...

  3. Java 排序算法-冒泡排序及其优化

    Java 排序算法-冒泡排序及其优化 什么是冒泡排序 基本写法 优化后写法 终极版本 源码及测试 什么是冒泡排序 这里引用一下百度百科上的定义: 冒泡排序(Bubble Sort),是一种计算机科学领 ...

  4. 八大排序算法的 Python 实现

    转载: 八大排序算法的 Python 实现 本文用Python实现了插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个 ...

  5. 八大排序算法Java实现

    本文对常见的排序算法进行了总结. 常见排序算法如下: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排 ...

  6. Python实现八大排序算法(转载)+ 桶排序(原创)

    插入排序 核心思想 代码实现 希尔排序 核心思想 代码实现 冒泡排序 核心思想 代码实现 快速排序 核心思想 代码实现 直接选择排序 核心思想 代码实现 堆排序 核心思想 代码实现 归并排序 核心思想 ...

  7. 八大排序算法详解(动图演示 思路分析 实例代码java 复杂度分析 适用场景)

    一.分类 1.内部排序和外部排序 内部排序:待排序记录存放在计算机随机存储器中(说简单点,就是内存)进行的排序过程. 外部排序:待排序记录的数量很大,以致于内存不能一次容纳全部记录,所以在排序过程中需 ...

  8. Java八大排序算法

    Java八大排序算法: package sort; import java.util.ArrayList; import java.util.Arrays; import java.util.List ...

  9. 八大排序算法总结与java实现(转)

    八大排序算法总结与Java实现 原文链接: 八大排序算法总结与java实现 - iTimeTraveler 概述 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 ...

随机推荐

  1. python_xlutils : python利用xlutils修改表格内容

    一.xlutils是什么 是一个提供了许多操作修改excel文件方法的库: 属于python的第三方模块 xlrd库用于读取excel文件中的数据,xlwt库用于将数据写入excel文件,修改用xlu ...

  2. 『言善信』Fiddler工具 — 8、Fiddler检查器(Inspectors)详解

    目录 1.请求报文内容 2.响应报文内容 3.响应报文中Transformer选项说明 Inspectors意思是检查器.Inspectors可以使用多种方式,查看请求的请求报文和响应报文相关信息. ...

  3. Linux学习笔记:Linux命令之文件处理命令

    文件处理命令 touch 命令名称:touch 执行权限:所有用户 功能描述:创建空文件 语法:touch [文件名] touch创建文件的时候命名不推荐存在空格,如下面的情况 1touch prog ...

  4. 【NX二次开发】Block UI 角度尺寸

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  5. XML从入门到深入(超详细)

    一:什么是XML XML (eXtensible Markup Language)指可扩展标记语言,标准通用标记语言的子集,简称XML.是一种用于标记电子文件使其具有结构性的标记语言. XML可以标记 ...

  6. 如何回答面试中问到的Hibernate和MyBatis的区别

    这边主要是写给那些准备去面试的(没什么经验的)应聘者看的,为了在面试中更好的回答这个问题,我做一个简单的梳理和总结. 作为一名职场新人,经历过多次的面试,由于在简历中提及了Hibernate和MyBa ...

  7. Jenkins 流水线远程部署 .NET Core/Framework 到 IIS

    目录 Windows 安装 Git WebDeploy Windows 从节点 .NET Core 处理 IIS 处理项目 Jenkinsfile .NET Framework 安装环境 .NET F ...

  8. js笔记17

    BOM浏览器对象模型 1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式  _self 2.window.close() 3.浏览器用户的信息 window ...

  9. centos 8.3安装 OPENJDK

    centos 8.3安装 OPENJDK 查找可安装的OPENJDK [root@xamppr10 ~]# yum search java | grep -i --color openjdk 命令执行 ...

  10. 07 修改JumpServer网页信息

    1.7.修改JumpServer网页信息 注意:在修改相关配置文件之前要先进行备份,防止文件修改错误无法恢复. 1.Luna图标: /opt/luna/static/imgs/logo.png 2.j ...