<div>void insertion_sort(int list[], int n)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i, j;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int key;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (i = 1; i < n; i++) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>key = list[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for (j = i - 1; j >= 0 && (list[j]> key); j--) //조건문 맨 뒤에 비교횟수++추가?</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>list[j + 1] = list[j];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><span style="font-size:9pt;">}</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>list[j + 1] = key; </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div>---</div> <div><br></div> <div>위 삽입정렬 코드에 </div> <div><span style="font-size:9pt;">count_comp = 0, count_move = 0;</span></div> <div>비교횟수와 이동횟수를 카운트하는걸 넣으려고 하는데 진짜 이거 어디에 넣어야할지 감이 안오네요 해봐도 틀린거같고...</div> <div><br></div> <div>일단 비교횟수는 주석달아놓은것처럼 for문쪽에 다는거같기도 한데 하 미치겠네요 혹시 고수님들잇으면 조언좀 부탁드립니다.</div> <div><br></div> <div><br></div> <div><br></div> <div>아래 쉘정렬도 마찬가진데 이것도 어디다가 카운터를 넣어야 제대로 너무 헷갈리네요</div> <div><br></div> <div>----</div> <div> <div>//gap만큼 떨어진 요소들을 삽입정렬</div> <div>//정렬의 범위는 first~last</div> <div><br></div> <div>inc_insertion_sort(int list[], int first, int last, int gap)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i, j, key;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=first+gap; i<=last; i=i+gap){</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>key = list[i];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(j=i-gap; j>=first && key<list[j];j=j-gap)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>list[j+gap]=list[j];</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>list[j+gap]=key;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div><br></div> <div>void shell_sort( int list[], int n ) // n = size</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int i, gap;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for( gap=n/2; gap>0; gap = gap/2 ) {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if( (gap%2) == 0 ) gap++;</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>for(i=0;i<gap;i++)<span class="Apple-tab-span" style="white-space:pre;"> </span>// 부분 리스트의 개수는 gap</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>inc_insertion_sort(list, i, n-1, gap);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.