게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
쉘정렬이 정렬하는 과정을좀 보고 싶은데....
게시물ID : programmer_13721짧은주소 복사하기
작성자 : 비공감요정
추천 : 1
조회수 : 470회
댓글수 : 8개
등록시간 : 2015/10/07 21:19:09
옵션
  • 본인삭제금지
어디서 어떻게 코드를 추가해야 정렬과정이 실시간으로 보일까요???
아무리 해봐도 잘 안되네요..,.. 전체적인 정렬과정이 보여야 하는데
어느부분이 생략되거나 너무 많이 표시되거나 하네요....
값이 바뀌는 시점에서 조건값만 어떻게 바꿔주면 될것 같은데 어렵네요....
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
const int N = 10;
 
void random(int a[]) {
 int i, j;
 for (i = 0; i < N; i++) {
  a[i] = rand() % N + 1;
  for (j = 0; j < i; j++) {
   if (a[i] == a[j]) {
    i--;
    break;
   }
  }
 }
}
 
int main() {
 int a[N];
 int i, j, b, h;
 int stime;
 random(a);
 
 stime = clock();
 for (h = 1; h < N; h = 3 * h + 1);
 while (h > 0) {
  for (i = h; i < N; i++) {
   b = a[i];
   for (j = i; j >= h && a[j - h] > b; j -= h) {
    a[j] = a[j - h];
   }
    a[j] = b;
  }
  h = h / 3;
 }
 
 printf("=====================\n");
 for (int ii = 0; ii < N; ii++) {
  printf("%d ", a[ii]);
 } printf("\n");
 
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호