데이터 구조 정렬 (삽입, 선택, 거품)

4251 단어 데이터 구조
package com.student.common;



public class Sort {

	

	

	

	public static void main(String[] args) {

		

		int [] number = {41,24,76,11,45,64,21,69,19,36};

    	

	   	//selectSort(number);

		//bobSort(number);

		insertSort(number);

     for(int j : number)

     System.out.println(j);

		

	}

	

	/**

	 *     

                  ,       ,       ,

                   ,               ,  :

      [1] 80 31 37 10 70 48 60 33 80      1 

      [1 10] 31 37 80 70 48 60 33 80      10 

      [1 10 31] 37 80 70 48 60 33 80      31 

      [1 10 31 33 37] 70 48 60 80 80 ...... 

      [1 10 31 33 37 48] 70 60 80 80 ...... 

      [1 10 31 33 37 48 60] 70 80 80 ...... 

      [1 10 31 33 37 48 60 70] 80 80 ...... 

      [1 10 31 33 37 48 60 70 80] 80 ...... 



	 * @param number

	 */

	public static void selectSort(int [] number)

	{

		for(int i=0;i<number.length;i++)

		{

			

			for(int j=i+1;j<number.length;j++)

				if(number[j] <number[i])

					swap(number,i,j);

						

		}

	}

	

	

	/**

	 *            ,        ,                ,              ,
  :

      [77 92] 67 8 6 84 55 85 43 67  77  92  

      [67 77 92] 8 6 84 55 85 43 67  67  77  

      [8 67 77 92] 6 84 55 85 43 67  8  67  

      [6 8 67 77 92] 84 55 85 43 67  6  8  

      [6 8 67 77 84 92] 55 85 43 67  84  92  

      [6 8 55 67 77 84 92] 85 43 67  55  67  

      [6 8 55 67 77 84 85 92] 43 67 ...... 

      [6 8 43 55 67 77 84 85 92] 67 ...... 

      [6 8 43 55 67 67 77 84 85 92] ...... 

	 * @param number

	 */

	public static void insertSort(int [] number)

	{

	  for(int j=1;j<number.length;j++)

	  {

		//     

		  int temp = number[j];

		  

		  int i= j-1;

		  while(temp < number[i])

		  { 

			  //     

			  number[i+1] = number[i];

			  i--;

			  if(i==-1) break;

		  }

		  number[i+1] = temp;

		                  

	  }	                  

		

	}

	/**

	 *     

	 * @param number

	 */

	public static void bobSort(int [] number)

	{

		for(int i=0;i<number.length;i++)

		{

			for(int j=0;j<number.length-i-1;j++)

				if(number[j] > number[j+1])

					swap(number, j+1, j);

		}

	}



	

	private static void swap(int[] number, int i, int j) {   

		 int t;

		 t = number[i];   

		 number[i] = number[j];

		 number[j] = t;    

	}

}

좋은 웹페이지 즐겨찾기