퀵소트(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()함수 내에서 정렬이 되어있는 데이터의 경우
깊이가 너무 깊어지면 스택 오버플로가 발생하는 것 같은데요
이것을 예방하는 방법은 어떤것이 있을까요?