クイックソートの関数を書いたのですが、うまくソートできないようです。
int型の配列を昇順にソートしようとしています。
原因がわかりましたら教えてください。
お願いします。
プロジェクト全体も添付しておきます。
void quicksort(int* arr,int size) { int left; int right; int maeleft; int maeright; int pipot; int temp; int lstack[100]; int rstack[100]; int stacknum; lstack[0]=0; rstack[0]=size-1; stacknum=0; while(stacknum>=0) { maeleft=left=lstack[stacknum]; maeright=right=rstack[stacknum]; pipot=arr[(left+right)/2]; while(left<right) { for(;left<size && arr[left]<pipot;left++); for(;right>=0 && arr[right]>pipot;right--); if(left<=right) { temp=arr[left]; arr[left]=arr[right]; arr[right]=temp; left++; right--; } } if(left==right) { left++; right--; } stacknum--; if(right-maeleft<maeright-left) { if(maeleft<right) { stacknum++; lstack[stacknum]=maeleft; rstack[stacknum]=right; } if(left<maeright) { stacknum++; lstack[stacknum]=left; rstack[stacknum]=maeright; } } else { if(left<maeright) { stacknum++; lstack[stacknum]=left; rstack[stacknum]=maeright; } if(maeleft<right) { stacknum++; lstack[stacknum]=maeleft; rstack[stacknum]=right; } } } }