Java语言:冒泡排序和直接插入算法


一共三个类,分别为冒泡排序类,直接插入排序类和最后的测试类
异常就没写了
冒泡排序 结果如下

  1. public class InsertMaoPao {  
  2. public void insertMao(int []data){  
  3.  try{  
  4.  for(int i=0;i<data.length;i++){  
  5.   for(int j=0;j<data.length-1;j++){  
  6.    if(data[j]>data[j+1]){  
  7.     int temp=data[j];  
  8.     data[j]=data[j+1];  
  9.     data[j+1]=temp;  
  10.    }  
  11.   }  
  12.  }}  
  13.  catch(Exception e){  
  14.   System.out.println("索引出错");  
  15.   e.printStackTrace();  
  16.  }  
  17.  System.out.print("冒泡排序:");  
  18.  for(int x:data){  
  19.   System.out.print(x+" ");  
  20.  }  
  21. }  
  22. }  
  23. 、、、、、、、、、、、  
  24.   
  25. package cn.paixu;  
  26.   
  27. public class InsertData {  
  28.  public void insertDa(int []data){  
  29.   for(int i=1;i<data.length;i++){  
  30.    int temp=data[i];//第一步取插入的数   
  31.    //判断插入的值与它插入位置的前一位进行比较,如果比前一位大,就不用变更位置,如果小于则下面   
  32.    if(temp<data[i-1]){  
  33.    int j=i-1;  
  34.     for(;j>=0&&data[j]>temp;j--){  
  35.      data[j+1]=data[j];//比较后交换   
  36.     }  
  37.     data[j+1]=temp;  
  38.    }  
  39.    //插入数值小于前面的数值,依次比较   
  40.       
  41.       
  42.   }  
  43.   System.out.print("插入排序:");  
  44.   for(int x:data){  
  45.    System.out.print(x+" ");  
  46.   }  
  47.  }  
  48.   
  49. }  

、、、、、、、、、、、、、、、、测试类、、、、、、、、、、、、 

  1. package cn.paixu;  
  2.   
  3. import java.util.Scanner;  
  4.   
  5. public class TestData {  
  6.   
  7.  public void getData() {  
  8.   int count = 0;  
  9.   System.out.println("请依次输入您所需要排列的数值 以空格分隔例如:5 8 9 ...");  
  10.   System.out.print("输入数值为:");  
  11.   Scanner input = new Scanner(System.in);  
  12.  String s = input.nextLine();  
  13.   String [] str=s.split(" ");  
  14.   count=str.length;  
  15.   int data[]=new int[count];  
  16.   for(int i=0;i<count;i++){  
  17.    data[i]=Integer.parseInt(str[i]);  
  18.   }  
  19.     
  20. //  for (int i = 0; i < s.length(); i++) {   
  21. //   char c = s.charAt(i);   
  22. //   if (c >= '0' && c <= '9')   
  23. //    count++;   
  24. //  }   
  25.   //System.out.println(count);   
  26.  }  
  27.   
  28.  public static void main(String[] args) {  
  29. //     
  30.   int count = 0;  
  31.     
  32.   System.out.println("请依次输入您所需要排列的数值 以空格分隔例如:5 8 9 ...");  
  33.   System.out.print("输入数值为:");  
  34.     
  35.   Scanner input = new Scanner(System.in);  
  36.  String s = input.nextLine();  
  37.     
  38.   String [] str=s.split(" ");  
  39.   count=str.length;  
  40.   int data[]=new int[count];  
  41.   for(int i=0;i<count;i++){  
  42.    data[i]=Integer.parseInt(str[i]);  
  43.   }  
  44.     
  45.     
  46.   // TODO Auto-generated method stub   
  47. InsertData insetda=new InsertData();  
  48. insetda.insertDa(data);  
  49. InsertMaoPao im=new InsertMaoPao();  
  50. im.insertMao(data);  
  51.  }  
  52.   
  53. }  

相关内容