Java的相关的排序实现(参考软件设计师教程)

xiaoxiao2026-05-24  9

package com.liuxt.sort;

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

public class SortMain { public static void main(String[] args) {  SortTemplate template = null;    //初始化模版类  try {   template = new SortTemplate();  } catch (Exception e) {   e.printStackTrace();   System.exit(1);  }  int dataLength=0,maxElement=0;  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));    //boolean isExit=false;    while (true) {   try {    String arrayLength=getInputDataLength(br);    dataLength = Integer.parseInt(arrayLength);    if (dataLength < 0){     System.out.println("\n数组的长度必须大于0:");     continue;    }    break;                   } catch (NumberFormatException e) {    System.out.println("\n重新输入排序数组的长度(只能输入数字):");    continue;   } catch (IOException e) {    e.printStackTrace();    System.exit(1);      }  }   template.setDataLength(dataLength);    while (true) {   try {    String max=getInputMax(br);    maxElement = Integer.parseInt(max);    if (dataLength < 0){     System.out.println("\n数字必须大于0:");     continue;    }    break;    } catch (NumberFormatException e) {      System.out.println("\n重新输入数组的元素的最大值(只能输入数字):");        continue;    } catch (IOException e) {      e.printStackTrace();     System.exit(1);    }      }  template.setMaxElement(maxElement);  int algorithm=0;  while(true){     showUsage();     String selectNumber = null;     try {    selectNumber = br.readLine();    try{      algorithm = Integer.parseInt(selectNumber);    }catch (NumberFormatException e) {      //e.printStackTrace();      System.out.println("请选择正确的排序算法序号!");     continue;    }    if (algorithm == 0)      System.exit(0);    else if(algorithm!=9){        try {         template.sortDataByName(SortUtil.getSortNameById(algorithm-1));        } catch (Exception e) {         e.printStackTrace();         System.exit(1);        }    }    else {        try {         template.sortDataByAll();        } catch (Exception e) {         e.printStackTrace();         System.exit(1);        }    }      } catch (IOException e) {     e.printStackTrace();     System.exit(1);   }  } 

 }   private static  String getInputDataLength(BufferedReader br) throws IOException{  System.out.print("输入排序数组的长度:");  String arrayLength=null;  arrayLength = br.readLine();  return arrayLength; }  private static  String getInputMax(BufferedReader br) throws IOException {  System.out.print("输入数组中整数的最大值:");  //BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  String max=null;  max = br.readLine();  return max;   } 

 private static void showUsage() {  System.out.println("\n请选择排序算法:");  System.out.println("  1 直接插入排序 ");  System.out.println("  2 选择法排序 ");  System.out.println("  3 冒泡法排序 ");  System.out.println("  4 快速法排序 ");  System.out.println("  5 希尔法排序 ");  System.out.println("  6 堆法排序 ");  System.out.println("  7 归并排序 ");  System.out.println("  9 执行所有排序 ");  System.out.println("  0 退出 "); }

}

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

最新回复(0)