2022年6月13日 星期一

[qsort] Just quick sort

嗯~非常好~我連個quick sort 都不會寫啊~(痛哭)

void swap(int *a, int *b)
{
    int tmp;
    tmp = *a;
    *a=*b;
    *b= tmp;
    
}

void qqsort(int *nums, int left, int right){
    if (left >= right)
        return;
    int i,j;
    int pivot=nums[left];
    i=left+1;
    j=right;
    while(1)
    {
        while(i<=right && nums[i]<pivot)
            i++;
        while(j>left && nums[j] >= pivot)
            j--;
        if (i>j)
            break;
        swap(&nums[i],&nums[j]);
    }
    swap(&nums[left], &nums[i-1]);
    qqsort(nums,left,i-1);
    qqsort(nums,i+1,right);
}

void qsortTest(int* nums, int numsSize){
    qqsort(nums,0, numsSize-1);
//    for (int i=0;i<numsSize; i++)
//        printf("%d = %d\n",i, nums[i]);
}

沒有留言:

張貼留言