材料:猴子排序,按照身高来从小到大来排序。

第一关:

老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍。(冒泡排序)

第二关:

太慢了,给第一关增加难度,进行选择排序

第三关:

最后,尝试选择用插入排序法,来进行排序。

测试类:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

//功能:猴子排序

public class MonkeySelect {

public static void main(String[] args) {

// TODO Auto-generated method stub

// 定义一个可以装5只猴子的对象数组

int size = 5;

Monkey[] monkeys = new Monkey[size];

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

// 初始化各个猴子

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

System.out.println("请输入第" + (i + 1) + "只猴子的高度");

try {

String height = br.readLine();

monkeys[i] = new Monkey((i + 1) + "", Float.parseFloat(height));

} catch (NumberFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

// 让老猴子排序

Monkey oldMonkey = new Monkey("1000", 1.2f);

// 冒泡排序

oldMonkey.bubbleSort(monkeys);

// oldMonkey.selectSort(monkeys);选择排序调用

// oldMonkey.insertSort(monkeys);插入排序调用

// 验证

oldMonkey.show(monkeys);

}

}

猴子类(功能):

// 猴子

class Monkey {

private String monkeyId;

private float height;

public Monkey(String monkeyId, float height) {

this.monkeyId = monkeyId;

this.height = height;

}

// 插入排序

public void insertSort(Monkey[] monkeys) {

// 开始排序

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

// 先记录该猴子的身高

float insertHeight = monkeys[i].height;

String insertNo = monkeys[i].monkeyId;

int insertIndex = i - 1;

while (insertIndex >= 0

&& monkeys[insertIndex].height > insertHeight) {

monkeys[insertIndex + 1].height = monkeys[insertIndex].height;

monkeys[insertIndex + 1].monkeyId = monkeys[insertIndex].monkeyId;

insertIndex--;

}

// 插入

monkeys[insertIndex + 1].height = insertHeight;

monkeys[insertIndex + 1].monkeyId = insertNo;

}

}

// 选择排序

public void selectSort(Monkey[] monkeys) {

float tempHeight = 0.0f;

String tempNo = "";

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

float minHeight = monkeys[i].height;

int minIndex = i;

// 和后面的比较

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

if (minHeight > monkeys[j].height) {

// 修正一下最小值

minHeight = monkeys[j].height;

// 修正下标

minIndex = j;

}

}

if (minIndex != i) {

// 交换

tempHeight = monkeys[minIndex].height;

monkeys[minIndex].height = monkeys[i].height;

monkeys[i].height = tempHeight;

tempNo = monkeys[minIndex].monkeyId;

monkeys[minIndex].monkeyId = monkeys[i].monkeyId;

monkeys[i].monkeyId = tempNo;

}

}

}

// 冒泡排队

public void bubbleSort(Monkey[] monkeys) {

float tempHeight = 0.0f;

String tempNo = "";

// 冒泡

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

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

// 判断

if (monkeys[j].height > monkeys[j + 1].height) {

// 身高

tempHeight = monkeys[j].height;

monkeys[j].height = monkeys[j + 1].height;

monkeys[j + 1].height = tempHeight;

// 编号

tempNo = monkeys[j].monkeyId;

monkeys[j].monkeyId = monkeys[j + 1].monkeyId;

monkeys[j + 1].monkeyId = tempNo;

}

}

}

}

// 显示队列

public void show(Monkey[] monkeys) {

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

System.out.println("猴子编号:" + monkeys[i].monkeyId + " 身高:"

+ monkeys[i].height);

}

}

}

java冒泡排序-选择排序-插入排序-使用API中文文档直接调用函数

import java.util.Arrays; public class ArrayDemo2_3 { public static void main(String []args) { //---- ...

学习C&num;之旅 冒泡排序&comma;选择排序&comma;插入排序&comma;希尔排序&lbrack;资料收集&rsqb;

关于冒泡排序,选择排序,插入排序,希尔排序[资料收集]  以下资料来源与网络 冒泡排序:从后到前(或者从前到后)相邻的两个两两进行比较,不满足要求就位置进行交换,一轮下来选择出一个最小(或最大)的放到 ...

python算法(一)基本知识&amp&semi;冒泡排序&amp&semi;选择排序&amp&semi;插入排序

本节内容: 算法基本知识 冒泡排序 选择排序 插入排序 1. 算法基本知识 1.1 什么是算法? 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为 ...

数组排序-冒泡排序-选择排序-插入排序-希尔排序-快速排序-Java实现

这五种排序算法难度依次增加. 冒泡排序: 第一次将数组相邻两个元素依次比较,然后将大的元素往后移,像冒泡一样,最终最大的元素被移到数组的最末尾. 第二次将数组的前n-1个元素取出,然后相邻两个元素依次 ...

冒泡排序 选择排序 插入排序希尔排序 java

双向冒泡 package com.huang; public class _014_bubb_sort { int[] b={1,2}; static int a[]={12,4,35,65,43,6 ...

冒泡排序 &amp&semi; 选择排序 &amp&semi; 插入排序 &amp&semi; 希尔排序 JavaScript 实现

之前用 JavaScript 写过 快速排序 和 归并排序,本文聊聊四个基础排序算法.(本文默认排序结果都是从小到大) 冒泡排序 冒泡排序每次循环结束会将最大的元素 "冒泡" 到最 ...

php基础排序算法 冒泡排序 选择排序 插入排序 归并排序 快速排序

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一 ...

lowB三人组算法-冒泡排序-选择排序-插入排序

冒泡排序 时间复杂度:O(n2)  算法稳定 第一趟,从第一个数开始,相邻两个数比较,大的数交换放后,交换到最后位置得出一个第一大数 第二趟,从第一个数开始,相邻两个数比较,大的数交换放后,交换到倒数 ...

随机推荐

&lbrack;NHibernate&rsqb;HQL查询

目录 写在前面 文档与系列文章 查询的几种方式 HQL查询 一个例子 总结 写在前面 上篇文章介绍了nhibernate在项目中的基本配置,包括数据库连接字符串的设置,映射文件的配置及需注意的地方,这 ...

iOS - 利用runtime加深对基础知识的理解

利用runtime加深对基础知识的理解 如果对runtime需要学习,可以看这篇,以下仅作为学习笔记,相互交流. runtime的头文件: #import ...

mysql explain详解

对于经常使用mysql的兄弟们,对explain一定不会陌生.当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联合和以什么次序的信息.借助于 ...

KnockoutJS&lpar;1&rpar;-数据模型

前言 说到数据模型(ViewModel),就不得不提到MVVM模式,接触过WPF和Silverlight的人应该对这个模式比较熟悉. 不熟悉也没多大关系,因为KnockoutJS的使用相对简单. MV ...

tomcat启动端口号报错java&period;net&period;BindException&colon; Cannot assign requested address

异常信息 时间:2017-02-09 15:09:59,829 - 级别:[ERROR] - 消息: [other] Failed to start end point associated with ...

Asp&period;Net WebApi 调试利器&OpenCurlyDoubleQuote;单元测试”

当我们编辑好一个WebApi应用程序后,需要对该Api接口进行调试,传统的调试办法是在方法内设置断点,然后用PostMan等http工具模拟访问进行查看WebAPI的运行情况,但这种除了效率较低还进行 ...

在FFMPEG中使用libRTMP的经验

FFMPEG在编译的时候可以选择支持RTMP的类库libRTMP.这样ffmpeg就可以支持rtmp://, rtmpt://, rtmpe://, rtmpte://,以及 rtmps://协议了. ...

flask之信号和mateclass元类

本篇导航: flask实例化参数 信号 metaclass元类解析 一.flask实例化参数 instance_path和instance_relative_config是配合来用的:这两个参数是用来 ...

javascript 面向过程和面向对象

面向过程 思维方式:把解决问题的关注点,放到解决问题的每一个详细步骤上面. 面向对象 思维方式:把解决问题的关注点,放到解决问题需要的一些对象身上. 创建对象: 对象字面量 使用内置构造对象 封装简单 ...

&lbrack;蓝桥杯&rsqb;ALGO-84&period;算法训练&lowbar;大小写转换

题目描述: 问题描述 编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出. 输入格式:输入一 ...

c语言数组项目按身高排序,过三关 Java冒泡排序选择排序插入排序小练习相关推荐

  1. 过三关 Java冒泡排序选择排序插入排序小练习

    材料:猴子排序,按照身高来从小到大来排序. 第一关: 老猴子带领小猴子队伍按大小逐一比较,交换,开始高矮排列队伍.(冒泡排序) 第二关: 太慢了,给第一关增加难度,进行选择排序 第三关: 最后,尝试选 ...

  2. 【十大经典排序算法】java实现--选择排序(2)

    选择排序概述 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾. 重复第二步,直到所有元素均排序完毕. 选择排序j ...

  3. java 冒泡排序 选择排序 插入排序及其异同点

    交换两坐标位置的swap()函数 之后要用到 public static void swap(int[] arr, int a, int b) {int temp;temp = arr[a];arr[ ...

  4. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  5. C语言排序算法(一)——选择排序实现

    C语言排序算法(一)--选择排序实现 编写程序,实现从键盘输入10个数,并用选择法从小到大排序. 简单选择排序的基本思想:第1趟,在待排序记录r[1]r[n]中选出最小的记录,将它与r[1]交换:第2 ...

  6. 【简单排序算法】:简单选择排序、直接插入排序和冒泡排序

    [简单排序算法]:简单选择排序.直接插入排序和冒泡排序 简单选择排序: 原理:设所排序序列的记录个数为n.i取1,2,-,n-1,每次从所有n-i+1个记录(Ri,Ri+1,-,Rn)中找出最小的记录 ...

  7. 【排序算法】冒泡排序|选择排序|插入排序|希尔排序

    文章目录 冒泡排序 选择排序 插入排序 希尔排序 冒泡排序   第一个元素开始向第二个元素比较,若大于则交换位置,不大于则不动.然后第二个元素和第三个元素比较,再然后第三个元素和第四个元素比较-一直比 ...

  8. [ 数据结构 -- 手撕排序算法第四篇 ] 选择排序

    手撕排序算法系列之第四篇:选择排序. 从本篇文章开始,我会介绍并分析常见的几种排序,大致包括直接插入排序,冒泡排序,希尔排序,选择排序,堆排序,快速排序,归并排序等. 大家可以点击此链接阅读其他排序算 ...

  9. Java利用选择排序和冒泡排序实现对键盘录入的数据排序

    Java利用选择排序和冒泡排序实现对键盘录入的数据排序 选择排序 选择排序是遍历元素找到最大(最小)的元素,放到第一个位置然后到剩余的元素里找到第二大(小)的元素放到第二个,因此类推,就可以得到一个排 ...

最新文章

  1. LeetCode简单题之二分查找
  2. IOS/Android模拟器运行APP调试方法
  3. mysql数据集_Mysql 数据库-我的测试环境
  4. 医院计算机网络安全宣教,医院网络安全及解决方案
  5. PPT 下载 | 神策数据杜明翰:数据赋能产品的 3 个锦囊
  6. 打基础和俄罗斯方块的关系
  7. ubuntu开启root登陆
  8. 最简易上手的numpy学习笔记四
  9. Optimizing regular expressions in Java
  10. Win10+VS2017+Ceres-Solver-1.13.0配置
  11. 后疫情时代,人工智能发展的四大趋势
  12. 学习下新塘M0芯片的下载方法
  13. vue-countTo---简单好用的一个数字滚动插件
  14. adb命令查看手机上的APP包名和启动activity
  15. 解决:fatal error: opencv2/xfeatures2d.hpp: No such file or directory
  16. 在椭球面上使用球面坐标系法做三重积分
  17. 详解怎么申请注册一个自己的电子邮箱邮件?怎么注册邮箱账号?
  18. Halcon知识:binocular_disparity(双目视差)
  19. android studio多媒体播放器,Android支持全屏、小窗口的视频播放器
  20. PhpStorm2019 代码自动换行

热门文章

  1. Python之父,26岁大学毕业,35岁发明Python,却差点因为沉迷编程被退学
  2. 哭唧唧!半年内使用过蚂蚁借呗、京东白条的 一律不给贷款?
  3. 整理的,复仇者联盟里的彩蛋
  4. linux小红帽实验心得,小红帽心得体会
  5. 猜数字游戏Bulls and Cows的解法
  6. 房讯通:房产估价背后的混合云服务
  7. 我国的高等教育到底缺失什么?
  8. 音频处理开源代码整理
  9. android仿微信图片视频选择器,视频图片选择分离。视频选择一个图片选择9个。
  10. 防ios的抽屉效果,防qq的抽屉效果