홈으로...

자료구조 물어볼게 있어요ㅠㅠ

  • LV 1 zenojm
  • 비추천 0
  • 추천 2
  • 조회 3430
  • 2013.11.25 15:02
프로젝트 과제인데요..
버블정렬보다 빠른 정렬로 코드를 짜는건데요
삽입정렬로 코드를 짜봤어요
그런데 컴파일은 되는데 원하는 값을 출력을 받지 못했습니다..
대체 뭐가 문제인지를 모르겠어요..
혹시 조언 좀 구할 수 있을까해서 글을 씁니다 ㅠㅠ

소스파일과 헤더파일 코드를 남기겠습니다.
버블정렬은...
//헤더파일
typedef struct{
int listIdx;
int elementIdx;
} Element;

void initList(int size, int bDebug); // 정렬되지 않은 리스트(listIdx = 0)을 생성함
int createList(int size); // 요소의 개수가 size인 새로운 리스트를 생성함;(임시 저장 공간을 위해서 사용할 수 있음)
// 99개의 리스트를 생성할 수 있음.
void destroyList(int listIdx); // createList()로 생성된 리스트 중에서 사용되지 않는 리스트를 삭제함
int compare(Element e1, Element e2); // 두개의 요소를 비교함( e1 == e2 이면 0, e1 > e2 이면 1, e1 < e2 이면 -1)
void assign(Element e1, Element e2); // e1요소에 e2의 값을 할당함
void validateList(); // ListIdx가 0인 리스트가 정렬됨을 검사함. 실패하면 정렬되지 않는 elementIdx을 반환함
// 정렬 성공시에는 정렬 시간을 출력함
int getValue(Element e); // 요소에 할당된 값을 반환함(bDebug != 0 인 경우에만 동작함)

//소스파일
#include "listMgr.h"

#define MAX_ELEMENT 1000 // 정렬할 요수의 개수

void bubble_sort()

int i, j;
Element temp, e1, e2;

initList(MAX_ELEMENT, 0);

temp.listIdx = createList(1);
temp.elementIdx = 0;
e1.listIdx = 0;
e2.listIdx = 0;

  for(i=MAX_ELEMENT-1; i>0; i--){
for(j=0; j<i; j++){ // 앞뒤의 레코드를 비교한 후 교체
e1.elementIdx = j;
e2.elementIdx = j+1;
if ( compare(e1, e2) > 0 ){
assign( temp, e1 );
assign( e1, e2 );
assign( e2, temp );
}
}
  }

destroyList(temp.listIdx);
validateList();
}

void main()
{
bubble_sort();
}


제가 짠 삽입정렬은..
//소스코드

#include "listMgr.h"

#define MAX_ELEMENT 1000

void insertion_sort()
{
int i, j;
Element key, e1, e2;

initList(MAX_ELEMENT,0); //MAX_ELEMENT값의 리스트 소환

key.listIdx = createList(1);  //요소의갯수가1인 새로운 리스트를 생성해 key.listIdx할당
key.elementIdx = 0;
e1.listIdx = 0;        //위에서 할당할 리스트를 e1, e2에 할당
e2.listIdx = 0;

for(i=1;i<MAX_ELEMENT;i++){

e1.elementIdx = i;    //e1에 i를 할당
assign( key, e1 );    //key에 list[i]를 삽입

for(j=i-1;j>=0 && compare(e1, key);j--)
e1.elementIdx = j;        // e1에 j를 할당
e2.elementIdx = j+1;   // e2에 j+1를 할당
assign( e2, e1 );        //e2(j+1)에 e1(j)을 삽입
assign( e2, key );        //e2(j+1)에 key을 삽입


}
destroyList(key.listIdx);        // 생성된 리스트중에서 안쓰는거 파기 (key.listIdx)
validateList();              //(검사하고 결과값 출력)
}

void main()
{
insertion_sort();
}



========================================================================
이 밑에 있는 삽입정렬을 참고 하면서 짜봤습니다
void insertion_sort(int list[], int n)
{
int i, j, key;
for(i=1; i<n; i++){
key = list[i];

for(j=i-1; j>=0 && list[j]>key; j--)
list[j+1] = list[j];
list[j+1] = key;
}
}
========================================================================
버블정렬을 실행시
정렬성공
정렬시간 : 5344.446000초

이렇게 뜨구요..

삽입정렬 실행시
...
정렬되지 않는 요소 : <999>
정렬실패

이렇게 뜹니다.

왜 정렬성공이 안뜨고 정렬성공으로 뜨면서 정렬시간까지 뜰 수 있게 알려 주실 분 있으신가요ㅠㅠ

추천 2 비추천 0

트위터 페이스북 다음요즘 싸이공감 구글 북마크 네이버 북마크
LV 1 zenojm
탭으로 안에 있는 구문들은 보기 좋게 해놨었는데 글을 올리니 탭이 안먹힌상태네요ㅠㅠ
LV 1 리쿠스
버블정렬이랑 삽입정렬은 똑같이 시간복잡도가 O(n^2)입니다..
물론  데이터가 순서대로 정렬이 되어이있을경우는 삽입정렬이 빠르지만요
LV 1 리치cl
저도 정말 열심히 했었는데..말이죠...지금은 군에...
LV 1 큐티챙
퀵소트
LV 1 기정헌
컴터 언어관련은 너무 어려운거 같아요~
LV 1 iou610
한 줄 한 줄 디버깅 해보심이..
LV 1 smjin
헐........ 여기에 요런질문올리시는건 첨봐용 ㅎㅎㅎㅎㅎ
LV 1 이이다다다
헉...너무 어렵다 ;;;;;;
LV 1 김남길2
고마워요~~많은 도움이 도ㅒㅆ네요~~~~~~~~~~~~~
질문게시판 게시판 게시물 목록
번호 제   목 이름 날짜 조회 추천
알림 질문하기시기 전에 읽어주세요!!! (292) LV admin 허니스 10-09 76286 160
9018 디스클로저데이 왜 안올라올까요? LV 1 소요스 07-18 109 0
9017 우리나라에서 중국서버 접속해서 게임할수있도록 IP서비스하는 vpn 사용하고 계신분… LV 2 라면나라 07-14 186 0
9016 아주 예전에 음악파일[6CD Flac] 받아놓고 비밀번호를 잊었는데 비번 알 수있… LV 1 양양치기 07-03 384 0
9015 글쓰기오류어찌해결하나요 LV 1 zoan1212 07-03 156 0
9014 자막파일이 열리지 않아요? LV 6 퓨전맨 06-28 220 0
9013 토렌트 다운에 대해 궁금한것이 있어 선배님들의 말씀 듣고 싶습니다. (1) LV 1 호프로 06-26 556 0
9012 스마트폰 쓰시는분들 문의드립니다. (1) LV 2 긔여분호야 06-24 250 0
9011 가입후 24시간 글쓰기 오류 (5) LV 1 쿠마1981 06-20 232 0
9010 애니메이션 안올라오는데...무슨일있나요? LV 5 accboy 06-20 269 0
9009 픽팍쓰는데 궁금증이 생겼어요 LV 2 감빠라오 05-27 628 0
9008 한글 오피스 이런 건 LV 2 뭘로하지모… 05-26 581 3
9007 하트시그널시즌5 5화만 없는데 올려주실분 ㅠ LV 2 druid 05-26 352 0
9006 예능 좀 1080 p 로 부탁드려요 (1) LV 2 친칭친칭 05-24 427 1
9005 자료 요청 후 채택할 수 없는 경우 (3) LV 1 uke 05-19 384 5
9004 벨드 (bl) 갖고 계신분 계실까요?? (2) LV 2 뭘로하지모… 05-09 369 1
9003 유유베 출석체크 모바일에서 하기 (3) LV 3 이하늘님 05-05 401 5
9002 자료 요청했던글 오래된거 삭제했더니 (2) LV 1 우성바라기 04-21 640 6
9001 자료요청 하고싶은데 포인트가 없네요 ㅠ (2) LV 1 도돌이도돌… 04-05 567 2
9000 오늘의 TOP 100_2026년 04월 01일 대한민국 [FLAC+MP3].zip (4) LV 2 jins 04-03 2184 4
8999 3월부터 다운을 하려면 안되고있어요 (7) LV 2 긔여분호야 03-12 1885 2
8998 모바일로 할때는 유유베 다운로드가 되는데 (4) LV 2 맛잇는치느 03-07 940 0
8997 유유베 다운로드창이 안열립니다! 해결방법좀 알려주세요.형님들!! (10) LV 9 밀양아줌메 03-05 1917 1
8996 추천 할만한 게임 있으시면 어떤게 있는지 알려 주세요. LV 2 poosvvjk 03-03 560 0
8995 요즘엔 애니 완결 묶음은 안올라 오나요? LV 2 musidie 03-02 489 0
8994 노래자랑 LV 2 대그니 03-01 392 2
8993 간혹 가다가 드라마에 여러 음성 있는 게 있던데 LV 1 뭘로하지모… 02-23 415 0
8992 출첵하러 오면 이게 가끔 뜨던데 왜 이러는건지요? (3) LV 2 감빠라오 02-19 637 5
8991 다운로드 티프리카에서 쇼미다운로드 하니 요렇게 나오는데 이건 어떻게 해결해야 하나… (4) LV 2 파리스정 02-14 1783 2
8990 다운로드 페이를 찾을수가 없다고 나와요 (3) LV 2 파리스정 02-14 789 2
8989 비번 찾아요ㅜ.ㅜ 멜론 (Melon) 10월 11일 실시간 Top100 [14시 … (2) LV 1 4랑해 02-07 895 0
광고 · 제휴 문의는 이메일로 연락 바랍니다.  [email protected]   운영참여·제안 | 개인정보취급방침
Copyright © www.uuoobe.com All Rights Reserved.