一、冒泡排序

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. 05.Delphi接口的多重继承深入

    由于是IInterface,申明了SayHello,需要由继承类来实现函数,相对于03篇可以再精简一下 unit uSayHello; interface uses SysUtils, Windows ...

  2. platform设备驱动框架

    驱动框架 通过使用platform设备驱动框架,实现led驱动与设备操作的分离.     我们关注led_drv里面的 struct platform_driver led_drv里面的.probe函 ...

  3. Centos7安装Redis-单节点

    1.安装 gcc 编译环境 由于 Redis 使用 C 语言开发,所以官网下载的源码需要进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装. ​[root@CentOS ~]# yu ...

  4. vSphere vSwitch网络属性配置详解

    1.安全 混杂模式:把vSwitch当成是一个hub,同一台交换机上面所有的虚拟机都能接受到二层数据包. MAC地址更改:当vSwitch上面连接的某一个虚拟机MAC地址发生更改时,vSwitch是否 ...

  5. Rabbitmq之高级特性——实现消费端限流&NACK重回队列

    如果是高并发下,rabbitmq服务器上收到成千上万条消息,那么当打开消费端时,这些消息必定喷涌而来,导致消费端消费不过来甚至挂掉都有可能. 在非自动确认的模式下,可以采用限流模式,rabbitmq ...

  6. 【转】R函数-diag()函数

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lili_wuwu/article/det ...

  7. spring的一些annotation

    通过使用spring的注解可以把一些类通过spring容器管理这些类 @controller 控制器(注入服务) @service 服务(注入dao) @repository dao(实现dao访问) ...

  8. 八十一、SAP中的ALV的简介(ABAP List Viewer)

    一.ALV是SAP中的一个表格,全称为:ABAP List Viewer或者SAP List Viewer,就是可视化表格. ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出.除去列 ...

  9. 在各浏览器和各分辨率下如何让div内的table垂直水平居中?

    本文主要针对需要全屏显示的系统页面内,因为系统经常会用到表格table布局,偶尔的table需要显示在div的正中间,所以鄙人特此总结下div内table的万千姿态. <!DOCTYPE htm ...

  10. SpringMVC: Ajax技术

    SpringMVC:Ajax技术 简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 是一种在无需重新加载整个网 ...