기본 정렬 과 개선된 정렬 레포트
본 자료는 7페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
해당 자료는 7페이지 까지만 미리보기를 제공합니다.
7페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

기본 정렬 과 개선된 정렬 레포트에 대한 보고서 자료입니다.

본문내용

4
8
8
4
1
2
5
9
3
6
6
5
8
2
8
9
1
2
5
5
3
2
7
3
3
6
3
4
9
3
6
1
4
3
6
5
8
4
7
0
8
8
4
2
8
9
1
2
5
1
4
3
2
8
9
4
7
0
5
3
2
6
3
4
6
5
8
7
3
3
8
8
4
9
3
6
1
2
5
1
4
3
2
8
9
4
7
0
5
3
2
6
3
4
6
5
8
7
3
3
8
8
4
9
3
6
100단위정렬
정렬완료
10단위정렬
1단위정렬
정 렬 전
위 그림과 같은 방식으로 정렬 하는 방식이 기수 정렬입니다. 보는바와 같이 지금까지 했던 정렬과 다른 방식의 독특 한 방식으로 되어있지만, 충분한 정렬 속도를 보장 하고 안전하기 때문에 많이 사용 되고 있습니다. 가장 먼저 1의 단위를 순서대로 정렬을 합니다. 그러면 그림의 2번째 가 될 것입니다. 이때 정렬 할 때 순서 없이 정렬 하는 것이 아니라, 기존의 정렬 전 순서에서 가장 먼저 똑같은 숫자 예를 들어 3을 정렬 할 때 기존의 정렬 전 데이터에서 가장 먼저 만나는 것을 위에 두고 나중에 만나는 것은 아래에 두는 식으러 정렬해야 합니다. 다음 10의 자리도 똑같은 방식으로 1단위 정렬했던 자료를 이용하여 할 수 있습니다. 그렇게 100단위 정렬을 하면 정렬이 완료되었음을 알 수 있습니다.
기 수 정 렬
import java.util.*;
class RadixSort{
public static void main(String args[]){
Random ran = new Random();
int[] arr=new int[10];int a;int count=0;
System.out.println("============= Radix Sort =============");
//101~999 까지 난수 10개 만듬
while(true){
a=ran.nextInt()%1000;
if(a>100){
arr[count] = a;
count++;
}
if(count == 10)break;
}
displayArray_int(arr);
Radix(arr);
System.out.println("=====================================");
}
static int[] Radix(int[] array){
int num_digits = 0;
for(int i=0; i if(Integer.toString(array[i]).length() > num_digits){
num_digits = Integer.toString(array[i]).length();
}
}
Integer[] arr = new Integer[array.length];
for(int i=0; i arr[i]=new Integer(array[i]);
}
for(int i=0; i Stack[] s = new Stack[10];
for(int j=0;j s[j]=new Stack();
}
for(int j=arr.length-1;j>=0;j--){
int idx = (int)((arr[j].intValue()
% (Math.pow(10,i+1))) / (Math.pow(10,i)));
s[idx].push(arr[j]);
}
int k=0;
for(int j=0;j while(!s[j].empty()){
arr[k++]=(Integer)s[j].pop();
}
}
displayArray_Integer(arr);
}
for(int j=0;j array[j]=arr[j].intValue();
}
return array;
}
static void displayArray_int(int[] array){
for(int i=0; i System.out.print(array[i]+" ");
}
System.out.println(" ");
}
static void displayArray_Integer(Integer[] array){
for(int i=0; i System.out.print(array[i]+" ");
}
System.out.println(" ");
}
}
『 결 론 』
지금까지 정렬에 대해 공부 하였습니다.
복습하면, 정렬에는 크게 기본 정렬과 개선된 정렬이 있었으며, 기본정렬에는 버블 정렬, 선택 정렬, 삽입 정렬 세 가지 종류가 있으며, 개선된 정렬에는 쉘 정렬, 퀵 정렬, 기수 정렬 이렇게 3가지를 합해서 총 6가지 정렬에 대해 공부 하였습니다.
기본정렬은 개선된 정렬에 비해 간단한 구조로 되어 있습니다. 그래서 처음 정렬에 대해 공부하는 학생에게는 정렬이 어떤 것이다 이해 할 수 있는 좋은 자료가 되고 있습니다. 특히 버블 정렬은 기본 정렬 중 가장 간단하고 정렬 하는 방식도 어렵지 않아, 정렬을 처음 접할 때 교육용으로 적합한 정렬이라 할 수 있습니다. 하지만 정렬 방식도 간단하고, 정렬에 필요한 코드 작성도 개선된 정렬 보다 간단하지만, 그에 따라 많은 데이터를 정렬 할 때 개선된 정렬에 비하면, 컴퓨터 입장에서는 많은 비교와 교체를 해야 됨으로 여간 부담스러운 정렬이 아닐 수 없습니다. 하지만, 적은 데이터 정렬 할 때에는 코드도 간단하고 해서 처리하는 속도도 차이가 거의 없고, 코드 작성도 간단하여 많이 사용 하고 있습니다.
개선된 정렬은 기본정렬에 비해 매우 빠른 정렬이 가능 합니다. 하지만 처음 정렬을 접한 학생에게는 정렬 방법도 복잡하고, 코드로 구현할 때는 많은 어려움 이 있어서, 완벽하게 해당 정렬에 대해 이해가 필요 합니다. 물론 기본 정렬도 정렬하는 방법을 완벽히 이해를 해야 정렬이 가능 하겠지만, 개선된 정렬에 비해 코드의 길이도 짧고 크게 어려움 없이 정렬 코드를 작성 할 수 있습니다. 이렇게 개선된 정렬은 이해하기도 좀 더 복잡하고, 코드 구현도 어렵지만, 많은 데이터 정렬시 훌륭한 정렬 속도를 가지고 있어서, 실재로 많은 부분에서 사용되고 있습니다.
이상으로 보고서를 마치겠습니다.

추천자료

  • 가격3,000
  • 페이지수22페이지
  • 등록일2007.06.22
  • 저작시기2007.3
  • 파일형식한글(hwp)
  • 자료번호#416353
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니