디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

횽들 재귀 -> 비재귀 좀 봐줘

씨플+(123.109) 2011.08.23 01:56:43
조회 332 추천 0 댓글 1

횽들 내가 문제보고 재귀함수 비재귀로 바꾸래서 해본건데

어떻게 떠오른 생각을 옮기다보니까 스택도 만들고 순환큐도 만들었어

그러다보니 푸쉬, 팝, 인큐, 디큐 같이 연산이 많아졌는데

코드도 몇줄밖에안되는게 꽤늘었고 이렇게 복잡해지더라도 비재귀가 재귀일때보다 효율이 좋은거야?

그리고 스택이랑 큐 말고 밑에있는 재귀함수 쉽게 비재귀로 효율좋게 만드는법 알려주면 ㄳㄳ

/* 재귀 함수 */

void MergeSort(int DataSet[], int StartIndex, int EndIndex)

{

     if ( EndIndex - StartIndex < 1 )
        return;
   
    MiddleIndex = (StartIndex + EndIndex) / 2;
   
    MergeSort( DataSet, StartIndex,    MiddleIndex );
    MergeSort( DataSet, MiddleIndex+1, EndIndex );
   
    Merge( DataSet, StartIndex, MiddleIndex, EndIndex );

}


 

/* 비재귀 함수 */

void MergeSort(int DataSet[], int StartIndex, int EndIndex)

{

     int MiddleIndex = (StartIndex + EndIndex) /2;
     element Tempelem;
     element Leftelem;
     element Rightelem;
     CircularQueue *CQ;
     CQ_CreateQueue(&CQ, 16);
     Tempelem.Sindex = StartIndex;
     Tempelem.Mindex = MiddleIndex;       
     Tempelem.Eindex = EndIndex;
     Push(Tempelem);
     Enqueue(CQ, Tempelem);
    

     while(!CQ_IsEmpty(CQ))
     {      
          Tempelem = Dequeue(CQ);
          Leftelem.Sindex = Tempelem.Sindex;
          Leftelem.Eindex = Tempelem.Mindex;
          Leftelem.Mindex = (Leftelem.Sindex + Leftelem.Eindex) /2;
      
          if(Leftelem.Eindex - Leftelem.Sindex >= 1)
          {
                Enqueue(CQ, Leftelem);
                Push(Leftelem);
          }
          Rightelem.Sindex = Tempelem.Mindex+1;
          Rightelem.Eindex = Tempelem.Eindex;
          Rightelem.Mindex = (Rightelem.Sindex + Rightelem.Eindex) /2;
          if(Rightelem.Eindex - Rightelem.Sindex >= 1)
          {
                Enqueue(CQ, Rightelem);
                Push(Rightelem);
          }
     }
     
     while(!StackIsEmpty())
     {
          Tempelem = Pop();
          Merge( DataSet, Tempelem.Sindex, Tempelem.Mindex, Tempelem.Eindex);
     }
}


마지막으로 내가 만든 비재귀가 재귀랑 정말 똑같이 돌아가는지도 잘모르겠어..ㅎㅎ

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
271960 숏코딩 해보고 있는데 [5] 통맥갤로그로 이동합니다. 11.09.14 102 0
271959 운영체제,컴퓨터구조... [5] stdlib.h갤로그로 이동합니다. 11.09.14 146 0
271957 지금 씨언어 배열 90도 돌리기 하는데 (이거바바 ㅇㅇ) [2] 로하로하알로하갤로그로 이동합니다. 11.09.14 120 0
271956 누가 디시에 올린 글이 생각난다 [1] Adelposs갤로그로 이동합니다. 11.09.14 51 0
271955 pg언어 배워봐야지 ㅎ1ㅎ1 [1] ♥♡정수정♡♥갤로그로 이동합니다. 11.09.14 86 0
271954 궁금해서요 형님들 ㅎㅎ [8] 군대(115.23) 11.09.14 87 0
271953 헠헠헠헠 나 지금 Adelposs갤로그로 이동합니다. 11.09.14 24 0
271952 시발 너희는 사랑이 뭐지아냐? [4] Adelposs갤로그로 이동합니다. 11.09.14 74 0
271951 아 형들 질문좀 [3] Adelposs갤로그로 이동합니다. 11.09.14 34 0
271950 3일정도 되는 분량의 프갤 글을 읽었는데 [1] 좋은아버지갤로그로 이동합니다. 11.09.14 60 0
271948 스마트폰용 VisualStudio2011 ver.1.21출시 [1] CHALLENGER갤로그로 이동합니다. 11.09.13 92 0
271947 태블릿PC로도 코딩질가능한가요? [8] 박구갤로그로 이동합니다. 11.09.13 168 0
271946 맨땅에 헤딩을 하라!! [2] CHALLENGER갤로그로 이동합니다. 11.09.13 62 0
271945 **메모장에서 예시 입력받는데 메모장 줄 모두 끝나면 종료하게 어케하남요 [6] 꼬꼬마(1.224) 11.09.13 64 0
271943 아 하루 시간이너무 짧아 [2] 오마이갓넬갤로그로 이동합니다. 11.09.13 93 0
271942 밥값 담배값정도는 줄테니까 잉여계의 1인자갤로그로 이동합니다. 11.09.13 52 0
271941 컴퓨터에서 읽어올 수 있는 고유값이 뭐뭐 있음? [21] ㅇㅇㅇ(121.144) 11.09.13 166 0
271940 윤성우 선생께서 이런말하셧는데 [6] 오마이갓넬갤로그로 이동합니다. 11.09.13 150 0
271938 좆대딩씨 잉여계의 1인자갤로그로 이동합니다. 11.09.13 64 0
271937 형님들 첫 구직하는데 [3] ㅁㅂㅈ(124.28) 11.09.13 89 0
271936 비베 사진 [8] 잉여계의 1인자갤로그로 이동합니다. 11.09.13 194 0
271935 비베로 간단한 비행기게임 제작해줄분있나요 [6] 잉여계의 1인자갤로그로 이동합니다. 11.09.13 120 0
271934 dd님 혹시 [1] T3ddyB34r갤로그로 이동합니다. 11.09.13 19 0
271933 와c++어렵내? 오마이갓넬갤로그로 이동합니다. 11.09.13 54 0
271931 내칭구가 어제 말해줬는데 자기친구가 직업군인이었는데. . 직업바꿔서 웹프 [13] (220.117) 11.09.13 177 0
271930 오라클에서 서비스를 하지않는다는 조건으로 무료설치하잖아 [4] 三didas갤로그로 이동합니다. 11.09.13 72 0
271929 한언어를 다배우고 난다음 [18] 박구갤로그로 이동합니다. 11.09.13 186 0
271928 아스횽 추석 떄 안보인다더니 진짜 안보이네 Deanex갤로그로 이동합니다. 11.09.13 27 0
271927 과제마즘 ㅎㅎ [1] ■팔콘갤로그로 이동합니다. 11.09.13 27 0
271926 근데 html5와 css3는 어디서 쓰냐? [10] (220.117) 11.09.13 110 0
271924 자살춤 객객끽. 스트레스 받는 이유.txt [4] 로하로하알로하갤로그로 이동합니다. 11.09.13 57 0
271923 프갤은 역시 수준있는 갤러리네 [4] c마(220.121) 11.09.13 77 0
271922 형들은 vmware무슨용도로 씀? [8] 三didas갤로그로 이동합니다. 11.09.13 106 0
271921 rpg쯔꾸르에 대해 어케생각 [1] ㅇㅇ(61.77) 11.09.13 90 0
271920 C언어만 배워서는 프로그래밍 못허냐? [4] c마(220.121) 11.09.13 111 0
271917 OpenCV 하면 이책아님? [4] SuCo갤로그로 이동합니다. 11.09.13 95 0
271916 윤성우 빠는사람있네 ㅋㅋ 난 윤성우의 실체를 아는데 ㅋ [3] SuCo갤로그로 이동합니다. 11.09.13 265 0
271915 고기 얻어먹고옴여 쀼잉쀼잉 [1] SuCo갤로그로 이동합니다. 11.09.13 52 0
271914 횽들 디씨할 때 [4] 로하로하알로하갤로그로 이동합니다. 11.09.13 53 0
271913 형들 file.h 가 왜없을까 [1] Muzik갤로그로 이동합니다. 11.09.13 44 0
271912 영상학이라면... [6] 이문동쮸쮸바갤로그로 이동합니다. 11.09.13 75 0
271911 형들 알고리즘 책 추천좀 [3] 형들(126.10) 11.09.13 137 0
271910 형들안녕 ? (2) [10] 좋은아버지갤로그로 이동합니다. 11.09.13 55 0
271909 학원 다니는 사람? [4] 로하로하알로하갤로그로 이동합니다. 11.09.13 104 0
271908 내가 생각하는 영상학 기초 테크 [12] 생물학(125.248) 11.09.13 136 0
271905 이제부터 디버깅 해달라카믄 [2] 로하로하알로하갤로그로 이동합니다. 11.09.13 64 0
271904 밑에 이미지 관리 하니까 생각난다 ㅋㅋㅋ 형들은 이미지 관리 어떻게함? [4] 그냥공돌이(58.235) 11.09.13 80 0
271903 아이트래커 에 관해 아시는 분....ㅜㅜ [3] 이동윤(125.208) 11.09.13 78 0
271902 가족과 친척들이 날 바라보는 시선. [8] CHALLENGER갤로그로 이동합니다. 11.09.13 142 0
271901 형들 고민 [1] 123(218.236) 11.09.13 31 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2