Java连载70-冒泡算法、选择算法
一、冒泡排序
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-冒泡算法、选择算法的更多相关文章
- Java基础【冒泡、选择排序、二分查找】
冒泡排序的思路就是前一个和后一个进行比较,如果大的就交换位置 大的数字后浮 如 12 8 5 31 第一轮 8 5 12 31 第二轮 5 8 ...
- Java数据结构和算法(三)——冒泡、选择、插入排序算法
上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法. 1.冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的 ...
- 《java数据结构与算法》系列之“简单排序"-冒泡,选择,插入
好几天又没写,因为这几天很闲,平时忙的时候自己再累都不会睡着,但是呢这没事了,照理说应该是不瞌睡了,结果还睡着了. 所以说,人很贱.也验证了一句话,没有目标的人其实最无聊.人一定要有自己的工作,这工作 ...
- php 冒泡 快速 选择 插入算法 四种基本算法
php四种基础算法:冒泡,选择,插入和快速排序法 来源:PHP100中文网 | 时间:2013-10-29 15:24:57 | 阅读数:120854 [导读] 许多人都说 算法是程序的核心,一个程序 ...
- javascript数据结构与算法--基本排序算法(冒泡、选择、排序)及效率比较
javascript数据结构与算法--基本排序算法(冒泡.选择.排序)及效率比较 一.数组测试平台. javascript数据结构与算法--基本排序(封装基本数组的操作),封装常规数组操作的函数,比如 ...
- python排序算法实现(冒泡、选择、插入)
python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...
- Java常用的7大排序算法汇总
1.插入排序算法 插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过 ...
- Java基础复习笔记基本排序算法
Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...
- 谷歌大规模机器学习:模型训练、特征工程和算法选择 (32PPT下载)
本文转自:http://mp.weixin.qq.com/s/Xe3g2OSkE3BpIC2wdt5J-A 谷歌大规模机器学习:模型训练.特征工程和算法选择 (32PPT下载) 2017-01-26 ...
- Java的三个基础排序算法(其余将在以后补充)
第一个:冒泡排序算法 原理:相邻的两个值进行比较,如果前面的比后面的大就交换位置 eg:假设有5个元素的一个array 第一次:会比较4次,将最大的值放在最右边 第二次:会比较3次,又排出剩余4个元素 ...
随机推荐
- css的响应式布局和动画
把响应式布局和动画放在一起写是因为他们有个共同点@符号 先讲讲响应式布局@media 响应式布局==曾经==非常的流行,这种布局方式可以做出一也兼容一切设备的页面,但是当页面的功能越来越多,css文件 ...
- Debian安装wine运行Windows软件
1.sudo dpkg --add-architecture i386,使系统支持32位应用 2.wget -nc https://dl.winehq.org/wine-builds/Release. ...
- Codeforces 459E Roland and Rose
本以为是个树形DP,按照树形DP的方法在那里dfs,结果WA到死,因为它存在有向环,不是树,凡是存在环的情况切记不要用树形的方法去做 题目的突破点在于将边排完序之后,用点表示以该点为边结尾的最大长度, ...
- ERP开发准备
Delphi 开发 ERP [1] 准备 使用的控件FireDac.DevExpress.FastReport. FireDac:新一代的数据库控件. DevExpress:界面UI. FastRep ...
- 入门QT5 D1 Widget的移动
又重温了一遍C++之后来看QT教程了.QT之前也看过,不过都是很长时间之前了,一直也用到. 反过来再一学,这是和学新的是一样一样的. 首先创建新项目. 1.点击NEW PROJECT 2.Applit ...
- UVA - 10817 Headmaster's Headache (状压dp+记忆化搜索)
题意:有M个已聘教师,N个候选老师,S个科目,已知每个老师的雇佣费和可教科目,已聘老师必须雇佣,要求每个科目至少两个老师教的情况下,最少的雇佣费用. 分析: 1.为让雇佣费尽可能少,雇佣的老师应教他所 ...
- CSS - 美化字体 => CSS的-font-smoothin属性优化
body{ margin: 0; font-family: Arial, Helvetica, sans-serif; line-height: 1.2em; back ...
- 6 —— node —— 响应一个完整的页面
const http = require('http'); const fs = require('fs'); const server = http.createServer(); server ...
- JavaScript原生Ajax请求纯文本数据
源代码 ajax1.html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- 如何通过 Python 和 OpenCV 实现目标数量监控?
今天我们将利用python+OpenCV实现对视频中物体数量的监控,达到视频监控的效果,比如洗煤厂的监控水龙头的水柱颜色,当水柱为黑色的超过了一半,那么将说明过滤网发生了故障.当然不仅如此,我们看的是 ...