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

xiaoxiao2021-02-28  21

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); }}

转载请注明原文地址: https://www.6miu.com/read-2599062.html

最新回复(0)