“黑暗面程序员”java中我们所熟知的四中排序算法

来源:互联网 发布:arena仿真软件下载 编辑:程序博客网 时间:2024/05/22 12:45

 ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

package com.itheima;

import java.util.*;

/*

冒泡排序

选择排序

插入排序

快速排序

 

*/

public class Test1 {
 public static void main(String[] args) {
  int arr[]={67,98,43,23,56,67,87,34,65,87};
 mp(arr);/*冒泡排序*/
 selectSort(arr);/*选择排序*/
  insertSort(arr);/*插入排序*/
  
 /*效率最高的是快速排序*/
  System.out.println("快速排序的结果为:");
  quickSort(arr, 0, arr.length - 1); 
     for(int i = 0; i < arr.length; i++)
     { 
        System.out.print(arr[i] + " ");
     }
 }
 
 
//冒泡排序:
 public static void mp(int[]arr)
 {int i;
  for(i=0;i<arr.length-1;i++)
  {
   for(int j=0;j<arr.length-1-i;j++)
   {
    if(arr[j]>arr[j+1])
    {
     int temp=arr[j];
     arr[j]=arr[j+1];
     arr[j+1]=temp;
    }
   }
  }
  System.out.println("冒泡排序结果为:");
  for( i=0;i<arr.length;i++)
  {
    System.out.print(arr[i]+" ");  
  }
  System.out.println();
 }
 
 //选择排序
   public static void selectSort(int array[]) { 
        int temp = 0; 
        int len = array.length; 
        for(int i = 0; i < len - 1; i++) { 
             int min = array[i]; 
            int index = i; 
            for(int j = i + 1; j < len; j++) { 
                if(min > array[j]) { 
                    index = j; 
             } 
          } 
            temp = array[i]; 
           array[i] = array[index]; 
            array[index] = temp; 
       } 
     System.out.println("选择排序结果为:");
       for(int i = 0; i < len; i++) { 
           System.out.print(array[i] + " "); 
        } 
       System.out.println();
     } 
   //插入排序 
    public static void insertSort(int array[]) { 
        int len = array.length; 
         for(int i = 1; i < len; i++) { 
           int temp = array[i]; 
           int index = i; 
          while(index > 0 && array[index - 1] > temp) { 
               array[index] = array[index - 1]; 
               index--; 
          } 
           array[index] = temp; 
    } 
      System.out.println("插入排序结果为:");
      for(int i = 0; i < len; i++) { 
           System.out.print(array[i] + " "); 
      } 
      System.out.println();
     }    
    //快速排序 
    
  
     private static int partition(int array[], int low, int height) { 
        int key = array[low]; 
        while(low < height) { 
           while(low < height && array[height] >= key) {
            height--;
            } 
            array[low] = array[height]; 
            while(low < height && array[low] <= key) { 
                low++; 
            } 
            array[height] = array[low]; 
         } 
        array[low] = key; 
          
        return low; 
     } 
     public static void quickSort(int []array, int low, int height) { 
         if(low < height) { 
              int result = partition(array, low, height); 
              quickSort(array, low, result - 1); 
             quickSort(array, result + 1, height); 
         } 
     } 
     public void quick(int []str)
     {
      if(str.length>0)
      {
       quickSort(str,0,str.length-1);
      }
     }
}

 

原创粉丝点击