冒泡排序法/选择排序/插入排序

public class Monkey {
private String name;
private float  hight;
public Monkey(String name, float  hight) {
this.name = name;
this.hight = hight;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getHight() {
return hight;
}
public void setHight(float hight) {
this.hight = hight;
}
//插入排序法
public void insertSort(Monkey []monkeys){
for(int i=1;i<monkeys.length;i++){
//先记录猴子的信息
float inserthight=monkeys[i].getHight();//临时变量
String insertname=monkeys[i].getName();//临时变量
int insertindex=i-1;
while(insertindex>=0&&monkeys[insertindex].getHight()>inserthight){
monkeys[insertindex+1].hight=monkeys[insertindex].hight;
monkeys[insertindex+1].name=monkeys[insertindex].name;
insertindex--;
}
//插入
monkeys[insertindex+1].hight=inserthight;
monkeys[insertindex+1].name=insertname;

}
}
//选择排序法
public void selectSort(Monkey []monkeys){
//临时变量
float temphight=0.0f;
String tempname="";
//认为下标为i的猴子身高最低
for(int i=0;i<monkeys.length;i++){
//临时变量
float minhight=monkeys[i].getHight();
int minindex=i;
//与后面的进行比较
for(int j=i+1;j<monkeys.length;j++){
if(minhight>monkeys[j].getHight()){
//修改最小值
minhight=monkeys[j].getHight();
//修改下标
minindex=j;
}
}
if(minindex!=i){
//把第j只猴子的信息给临时变量
temphight=monkeys[minindex].getHight();
   tempname=monkeys[minindex].getName();
  //把第j+1只猴子的信息给第j只猴子
   monkeys[minindex].setHight(monkeys[i].getHight());
   monkeys[minindex].setName(monkeys[i].getName());
   //把临时变量的信息给第j+1只猴子
   monkeys[i].setHight(temphight);
   monkeys[i].setName(tempname);
}
}
}
//冒泡排序法
public void bubbleSort(Monkey []monkeys){
//临时变量
float temphight=0.0f;
String tempname="";
//外层循环
for(int i=0;i<monkeys.length-1;i++){
//内层循环
for(int j=0;j<monkeys.length-i-1;j++){
if(monkeys[j].getHight()>monkeys[j+1].getHight())
{   //把第j只猴子的信息给临时变量
temphight=monkeys[j].getHight();
   tempname=monkeys[j].getName();
  //把第j+1只猴子的信息给第j只猴子
   monkeys[j].setHight(monkeys[j+1].getHight());
   monkeys[j].setName(monkeys[j+1].getName());
   //把临时变量的信息给第j+1只猴子
   monkeys[j+1].setHight(temphight);
   monkeys[j+1].setName(tempname);
}
}
}

}
//显示信息
public void show(Monkey []monkeys){
for(int i=0;i<monkeys.length;i++){
System.out.println("猴子的编号:"+monkeys[i].getName()+"猴子的身高:"+monkeys[i].getHight());
}
}

}

****************主函数

package main;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


import entity.Monkey;


public class MonkeySort {


/**
* @param args
*/
public static void main(String[] args) {
// 定义一个可以装5个对象的数组
int size=5;
Monkey []monkeys=new Monkey[size];
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader bufferedreader=new BufferedReader(isr);
//从控制台输入各个猴子的信息
for(int i=0;i<monkeys.length;i++)
{
System.out.println("请输入第"+(i+1)+"只猴子的信息");
try {
String hinght=bufferedreader.readLine();
monkeys[i]=new Monkey((i+1)+"",Float.parseFloat(hinght));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
//老猴子负责排队
Monkey oldmonkey=new Monkey(100+"",1.2f);
//利用冒泡排序方法排序
//oldmonkey.bubbleSort(monkeys);
//利用选择排序法排序
//oldmonkey.selectSort(monkeys);
//利用插入排序法排序
oldmonkey.insertSort(monkeys);
//显示结果
oldmonkey.show(monkeys);


}


}

猜你喜欢

转载自blog.csdn.net/weixin_40745306/article/details/79330076