INSERTION SORT

ALGORITHM 2011. 4. 14. 17:12


package algorithm.sort.insertion;

import algorithm.sort.Sort;

public class InsertionSort extends Sort {

 public InsertionSort(int[] arr) {
  super(arr);
 }

 protected void sort() {
  for (int i = 1; i < arr.length; i++) {

   int a = 0;

   while ((i - a) > 0) {
    if (arr[i - a] < arr[i - a - 1]) {
     int temp = arr[i - a];
     arr[i - a] = arr[i - a - 1];
     arr[i - a - 1] = temp;
     a++;
    } else {
     break;
    }
   }
  }
 }
}

----------------------
복잡하고, 이해가 바로 되지 않는다. 바꿔보자..

추상클래스 추가..
---------------------------
package algorithm.sort.insertion;

import algorithm.sort.Sort;

public class InsertionSort extends Sort {

 public InsertionSort(int[] arr) {
  super(arr);
 }

 protected void sort() {
  for (int i = 1; i < arr.length; i++) {

   int a = 0;

   int num = i - a;

   while (num > 0) {
    increaseSearchTime();
    
    if (arr[num] < arr[num - 1]) {
     swap(num, num - 1);
     a++;
     num = i - a;
    } else {      
     break;
    }
   
   }
  }
 }
}

'ALGORITHM' 카테고리의 다른 글

QUICK SORT  (0) 2011.04.16
BUBBLE SORT, INSERTION SORT TEST  (0) 2011.04.14
정렬 관련 추상클래스 만들어보기.  (0) 2011.04.14
BUBBLE SORT  (0) 2011.04.14
BINARY TREE  (0) 2011.04.12
Posted by sangmooni
,