题解 | #排序#
排序
http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型一维数组 待排序的数组
* @param arrLen int arr数组长度
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
void swap(int *a, int *b)
{
if(a==b)
return;
*a = *a^*b;
*b = *a^*b;
*a = *a^*b;
}
void quicksort(int *nums,int low,int high)
{
int left;
int right;
int mid;
if(low >= high)
return;
mid = nums[low];
left = low;
right = high;
while(left < right)
{
while(left<right && mid <= nums[right])
right--;
while(left<right && mid >= nums[left])
left ++;
if(left == right)
break;
swap(&nums[left],&nums[right]);
}
swap(&nums[low],&nums[left]);
quicksort(nums,low,left-1);
quicksort(nums,left+1,high);
}
int* MySort(int* arr, int arrLen, int* returnSize ) {
// write code here
*returnSize = arrLen;
if(arrLen <=1)
return arr;
quicksort(arr,0,arrLen-1);
return arr;
} 快速排序解决


小米集团公司氛围 371人发布