메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 알고리즘

뇌를 자극하는 알고리즘 질의응답 게시판입니다.

퀵소트(qsort)에서 스택 오버플로우(stack overflow)문제..

2011-03-24

|

by feblux

3246

페이지 207 소스를 따라해보다가

에러가 있어서 문의드립니다..

int Data[]= {6,4,2,3,1,5};를
----------------------
int data[10000];
for(i=0; i<10000; i++)
     data[i]= i;
-----------------------

먼저 데이터 갯수를 늘립니다. 예를 들면 1만개..

그리고 for문으로 모두 정렬을 해놓은 상태에서

퀵소트를 해보니 9천몇번째에서

swap()함수에서

stack overflow가 발생하더군요..


그래서
int data[10000];
for(i=0; i<10000; i++)
     data[i]=  rand();

이렇게 랜덤으로 값을 주었더니
배열 길이를 10만개로 해도 stack overflow는 발생하지 않았습니다.

이로 보아 ..
partition()함수 내에서 정렬이 되어있는 데이터의 경우
깊이가 너무 깊어지면 스택 오버플로가 발생하는 것 같은데요

이것을 예방하는 방법은 어떤것이 있을까요?
댓글 입력