정렬 좀 분석해주세요..
글쓴이: kknd345 / 작성시간: 금, 2004/10/22 - 12:46오전
void number_bubble_sort( int array[], int n) { int temp; int move_number=0; int compare_number=0; while ( n > 0 ) { int bdone = 0; int i = 1; // 이 1번의 루프로 최대 요소가 오른쪽 끝으로 이동한다. while ( i < n ) { if( array[i-1] > array[i]) { temp = array[i-1]; array[i-1] =array[i]; array[i] =temp; move_number++; bdone =1; } compare_number++; i++; } //불필요하게 돌리지 않는다. if ( !bdone) break; //오른쪽 끝은 완료 } printf("데이터 비교 횟수 : %d ", compare_number); printf("이동 횟수 : %d\n\n", move_number); } // 배열 요소를 오름차순으로 분류한다. void number_insertion_sort( int array[], int n) { int insitem, checkitem; int temp; int move_number=0; int compare_number=0; //제 2요소에서 끝 요소까지 반복한다. for( insitem=1; insitem < n; insitem++) { for( checkitem=insitem; checkitem >=1 ; checkitem--) { if( array[checkitem-1] > array[checkitem] ) {//왼쪽 요소와 교체한다 temp = array[checkitem]; array[checkitem] = array[checkitem-1]; array[checkitem - 1] = temp; move_number++; } compare_number++; } } printf("데이터 비교 횟수 : %d ", compare_number); printf("이동 횟수 : %d\n\n", move_number); } void number_select_sort( int array[], int n) { int i,j; int temp; int move_number=0; int compare_number=0; for( i=0;i<n;i++) { for( j=i+1; j<n;j++) { if( array[i] > array[j]) { temp=array[i]; array[i]=array[j]; array[j]=temp; move_number++; } compare_number++; } } printf("데이터 비교 횟수 : %d ", compare_number); printf("이동 횟수 : %d\n\n", move_number); }
제가 삽입정렬, 버블 정렬, 선택 정렬 제대로 구현한거 맞나요?
학교에서 이것들의 휴리스틱을 분석 해라는데 멀 적어야 하나요?
그리고 신기한것이 버블이랑 삽입의 이동횟수가 같고요
삽입이랑 선택정렬 데이터 비교횟수가 같게 나오는데
원래 그런건가요? 아님 제가 구현을 잘못 해서 그런건가요?
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 24.12 KB |
Forums:
제가 만들었던 sort 프로그램에서는bubble 하고 select
제가 만들었던 sort 프로그램에서는
bubble 하고 selection 하고 비교횟수가 같고,
bubble 하고 insertion 하고 swap 횟수가 같네요.
아 제가 실수를 했네요.제가 선택정렬이라고 생각했던 알고리즘이 삽
아 제가 실수를 했네요.
제가 선택정렬이라고 생각했던 알고리즘이 삽입 정렬과 똑같네요.
for와 while 의 차이로 눈치를 못챘네요..
선택 정렬은 어떻게 구현하나요?
1%의 가능성이면 충분하다!
최선을 다하자!
버블 소트가 앞쪽에 작은 것을 모으는 것과 뒤쪽에 큰 것을 모으는
버블 소트가 앞쪽에 작은 것을 모으는 것과
뒤쪽에 큰 것을 모으는 두 가지 방법으로 나뉘잖아요
혹시 앞쪽에 작은 것을 모으는 것이 선택정렬인가요????
1%의 가능성이면 충분하다!
최선을 다하자!
http://www.cs.ubc.ca/spider/harrison/Jav
http://www.cs.ubc.ca/spider/harrison/Java/sorting-demo.html
댓글 달기