您的位置:首页 > 编程语言 > Java开发

各种排序方法java实现

2014-07-15 19:56 399 查看
<span style="font-size:24px;"></span>


import java.util.Scanner;

public class sortMethods {
 public static void main(String[] args) {
  System.out.print("请输入需要排序的整数的个数:");
  Scanner keyIn = new Scanner(System.in);
  int n = keyIn.nextInt();
  int []arr = new int
;
  for(int i=0;i<n;i++){
   System.out.print("arr["+i+"]=");
   arr[i] = keyIn.nextInt();
  }
  System.out.println("排序前的序列:");
  for(int arr1:arr){
   System.out.print(arr1+" ");
  }
  System.out.println();
  new sortMethods().bubbleSort(arr);
  new sortMethods().insertSort(arr);
  new sortMethods().selectedSort(arr);
  new sortMethods().shellSort(arr);
 }
 public void bubbleSort(int[]arr){
  for(int i=0;i<arr.length;i++){
   for(int j=0;j<arr.length-i-1;j++){
    if(arr[j]>arr[j+1]){
     int temp = arr[j];
     arr[j] = arr[j+1];
     arr[j+1] = temp;
     
    }
   }
  }
  System.out.println("冒泡排序后的序列:");
  for (int arr1:arr){
   System.out.print(arr1+" ");
  }
  System.out.println();
 }
 public void insertSort(int []arr){
  for(int i=0;i<arr.length;i++){
   for(int j=i;j>0;j--){
    if(arr[j]<arr[j-1]){
     int temp = arr[j-1];
     arr[j-1] = arr[j];
     arr[j] = temp;
    }
   }
  }
  System.out.println("插入排序后的序列:");
  for (int arr1:arr){
   System.out.print(arr1+" ");
  }
  System.out.println();
 }
 public void selectedSort(int [] arr){
  for(int i=0;i<arr.length;i++){
   int min = i;
   for(int j=i+1;j<arr.length;j++){
    if(arr[j]<arr[min]){
     min = j;
    }
   }
   int temp = arr[i];
   arr[i] = arr[min];
   arr[min] = temp;
  }
  System.out.println("选择排序后的序列:");
  for(int arr1:arr){
   System.out.print(arr1+" ");
  }
  System.out.println();
 }
  public void shellSort(int []arr){
   System.out.println("希尔排序后的序列:");
   for(int increment = arr.length/2;increment > 0;increment /= 2){
    for(int i = increment; i < arr.length;i++){
     int temp = arr[i];
     int j = 0;
     for(j = i;j >= increment;j -= increment){
      if(temp < arr[j - increment]){
       arr[j] = arr[j - increment];
      }else{
       break;
      }
     }
     arr[j] = temp;
    }
   }
   for(int arr1 : arr){
    System.out.print(arr1+" ");
   }
  }
 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息