データ構造のクイックソート
1181 ワード
#include
void quicksort(int a[],int left,int right)
{
int i,j;
if(left < right)
{
i = left; //left、right ,temp
j = right;
int temp = a[left];
do
{
// j
while(a[j] > temp && i < j)
{
j--; //
}
if(i < j) // , while , if 。
{
a[i] = a[j]; //
i++;
}
// i
while(a[i] < temp && i < j)
{
i++;
}
if(i < j)
{
a[j] = a[i];
j--;
}
}while(i < j); //
a[i] = temp; //
quicksort(a,left,i-1); //
quicksort(a,i+1,right); //
}
}
int main()
{
int i;
int a[] = {5, 4, 8,9, 1,3};
int n = sizeof(a) / sizeof(int);
quicksort(a,0,n-1);
printf(" :");
for(i=0; i