题解 | #排序#
排序
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; }
快速排序解决