/**
* 猴子排队
*/
package com.test1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义一个可以装五个对象的数组
int size=5;
Monkey []monkeys=new Monkey[size];
InputStreamReader inputStreamReader=new InputStreamReader(System.in);
BufferedReader bufferedReader=new BufferedReader(inputStreamReader);
//初始化各个猴子,键盘输入
for (int i = 0; i < monkeys.length; i++) {
System.out.println("请输入第"+(i+1)+"只猴子的高度:");
try {
String height=bufferedReader.readLine();
monkeys[i]=new Monkey((i+1)+"",Float.parseFloat(height));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//让老猴子排序
Monkey oldMonkey=new Monkey("0", 1.2f);
//排序
//oldMonkey.sort(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 sort(Monkey []monkeys) {
//采用冒泡排序(一共循环四趟)
for (int i = 0; i < monkeys.length-1; i++) {
//内层循环
for (int j = 0; j < monkeys.length-1; j++) {
if (monkeys[j].height>monkeys[j+1].height) {
Monkey tempMonkey=null;
tempMonkey=monkeys[j];
monkeys[j]=monkeys[j+1];
monkeys[j+1]=tempMonkey;
}
}
}
}
public void selectSort(Monkey []monkeys) {
//选择排序
for (int i = 0; i < monkeys.length; i++) {
//暂时认定第一个身高最低
Monkey tempMinMonkey=monkeys[i];
int tempMinIndex=i;
for (int j = i+1; j < monkeys.length; j++) {
if (tempMinMonkey.height>monkeys[j].height) {
tempMinMonkey=monkeys[j];
tempMinIndex=j;
}
}
if (tempMinIndex!=i) {
monkeys[tempMinIndex]=monkeys[i];
monkeys[i]=tempMinMonkey;
}
}
}
public void insertSort(Monkey []monkeys) {
//插入排序
for (int i = 0; i < monkeys.length-1; i++) {
int tempIndex=i;
while (tempIndex>=0&&monkeys[tempIndex].height>monkeys[tempIndex+1].height) {
Monkey tempMonkey=monkeys[tempIndex];
monkeys[tempIndex]=monkeys[tempIndex+1];
monkeys[tempIndex+1]=tempMonkey;
tempIndex--;
}
}
}
//显示队列
public void show(Monkey []monkeys) {
System.out.println("排序后:");
for (int i = 0; i < monkeys.length; i++) {
System.out.println("猴子编号:"+monkeys[i].monkeyId+",身高:"+monkeys[i].height);
}
}
}
冒泡排序、选择排序、插入排序回顾练习
猜你喜欢
转载自blog.csdn.net/noreaday/article/details/79565270
今日推荐
周排行