一、冒泡排序

1.也就是依次选出最大的放在最后面

package com.bjpowernode.java_learning;

​

public class D70_1_BubbleSort {

  public static void main(String[] args) {

    /*

     * 冒泡排序算法:有一个int类型的数组:3 1 6 2 5

     */

    int[] a = {3,1,6,2,5,45,8,9,86};

    //开始排序

    for (int i=a.length-1;i>0;i--) {

      for (int j=0;j<i;j++) {

        if(a[j]>a[j+1]) {

          int temp = a[j];

          a[j] = a[j+1];

          a[j+1] = temp;

        }

      }

      //也可以这么写

      //for(int j=0;j<i;J++){

      //  if(a[j]>a[i]){

      //    int temp = a[j];

      //    a[j] = a[i];

      //    a[i] = temp;

      //}

    }

    for(int i=0;i<a.length;i++) {

      System.out.println(a[i]);

    }

  }

}

二、选择排序

1.也就是依次选出最小的放在前面

package com.bjpowernode.java_learning;

​

public class D70_2_SelectionSort {

  public static void main(String[] args) {

    int [] a = {45,4,8,2,69,31,2,0};

    int min = 0;

    for(int i=0;i<a.length-1;i++) {

      for(int j=i+1;j<a.length;j++) {

        if(a[i]>a[j]) {

          int temp = a[i];

          a[i] = a[j];

          a[j] = temp;

        }

      }

    }

    for(int i=0;i<a.length;i++) {

      System.out.println(a[i]);

    }

  }

}

​总结:在一个循环中,flag如果有上界,那么慎用flag+1这种操作,​容易造成数组越界;flag如果有下界,那么慎用flag-1这种操作,容易造成越界,​解决方式就是循环的初始数字要选好。

四、源码:

D70_2_SelectionSort.java
D70_1_BubbleSort.java

https://github.com/ruigege66/Java/blob/master/D70_1_BubbleSort.java

https://github.com/ruigege66/Java/blob/master/D70_2_SelectionSort.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载70-冒泡算法、选择算法的更多相关文章

  1. Java基础【冒泡、选择排序、二分查找】

    冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置   大的数字后浮 如   12      8    5     31 第一轮   8   5   12   31 第二轮   5   8 ...

  2. Java数据结构和算法(三)——冒泡、选择、插入排序算法

    上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法. 1.冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的 ...

  3. 《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入

    好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了. 所以说,人很贱.也验证了一句话,没有目标的人其实最无聊.人一定要有自己的工作,这工作 ...

  4. php 冒泡 快速 选择 插入算法 四种基本算法

    php四种基础算法:冒泡,选择,插入和快速排序法 来源:PHP100中文网 | 时间:2013-10-29 15:24:57 | 阅读数:120854 [导读] 许多人都说 算法是程序的核心,一个程序 ...

  5. javascript数据结构与算法--基本排序算法(冒泡、选择、排序)及效率比较

    javascript数据结构与算法--基本排序算法(冒泡.选择.排序)及效率比较 一.数组测试平台. javascript数据结构与算法--基本排序(封装基本数组的操作),封装常规数组操作的函数,比如 ...

  6. python排序算法实现(冒泡、选择、插入)

    python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...

  7. Java常用的7大排序算法汇总

    1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过 ...

  8. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  9. 谷歌大规模机器学习:模型训练、特征工程和算法选择 (32PPT下载)

    本文转自:http://mp.weixin.qq.com/s/Xe3g2OSkE3BpIC2wdt5J-A 谷歌大规模机器学习:模型训练.特征工程和算法选择 (32PPT下载) 2017-01-26  ...

  10. Java的三个基础排序算法(其余将在以后补充)

    第一个:冒泡排序算法 原理:相邻的两个值进行比较,如果前面的比后面的大就交换位置 eg:假设有5个元素的一个array 第一次:会比较4次,将最大的值放在最右边 第二次:会比较3次,又排出剩余4个元素 ...

随机推荐

  1. css的响应式布局和动画

    把响应式布局和动画放在一起写是因为他们有个共同点@符号 先讲讲响应式布局@media 响应式布局==曾经==非常的流行,这种布局方式可以做出一也兼容一切设备的页面,但是当页面的功能越来越多,css文件 ...

  2. Debian安装wine运行Windows软件

    1.sudo dpkg --add-architecture i386,使系统支持32位应用 2.wget -nc https://dl.winehq.org/wine-builds/Release. ...

  3. Codeforces 459E Roland and Rose

    本以为是个树形DP,按照树形DP的方法在那里dfs,结果WA到死,因为它存在有向环,不是树,凡是存在环的情况切记不要用树形的方法去做 题目的突破点在于将边排完序之后,用点表示以该点为边结尾的最大长度, ...

  4. ERP开发准备

    Delphi 开发 ERP [1] 准备 使用的控件FireDac.DevExpress.FastReport. FireDac:新一代的数据库控件. DevExpress:界面UI. FastRep ...

  5. 入门QT5 D1 Widget的移动

    又重温了一遍C++之后来看QT教程了.QT之前也看过,不过都是很长时间之前了,一直也用到. 反过来再一学,这是和学新的是一样一样的. 首先创建新项目. 1.点击NEW PROJECT 2.Applit ...

  6. UVA - 10817 Headmaster's Headache (状压dp+记忆化搜索)

    题意:有M个已聘教师,N个候选老师,S个科目,已知每个老师的雇佣费和可教科目,已聘老师必须雇佣,要求每个科目至少两个老师教的情况下,最少的雇佣费用. 分析: 1.为让雇佣费尽可能少,雇佣的老师应教他所 ...

  7. CSS - 美化字体 => CSS的-font-smoothin属性优化

    body{     margin: 0;     font-family: Arial, Helvetica, sans-serif;     line-height: 1.2em;     back ...

  8. 6 —— node —— 响应一个完整的页面

      const http = require('http'); const fs = require('fs'); const server = http.createServer(); server ...

  9. JavaScript原生Ajax请求纯文本数据

    源代码 ajax1.html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  10. 如何通过 Python 和 OpenCV 实现目标数量监控?

    今天我们将利用python+OpenCV实现对视频中物体数量的监控,达到视频监控的效果,比如洗煤厂的监控水龙头的水柱颜色,当水柱为黑色的超过了一半,那么将说明过滤网发生了故障.当然不仅如此,我们看的是 ...