快速排序和冒泡排序(c语言)
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 将给定数组排序
* @param arr int整型一维数组 待排序的数组
* @param arrLen int arr数组长度
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
//快速排序
void fast_sort(int *arr,int left,int right)
{
int i = left,j = right,temp;
temp = arr[i]; //基准值
if(left>=right)
return ;
while(j>i)
{
while(j>i&&arr[j]>temp) //右边找小值
{
j--;
}
arr[i] = arr[j];
while(j>i&&arr[i]<=temp) //左边找大值
{
i++;
}
arr[j] = arr[i];
}
arr[i] = temp;
fast_sort(arr,left,i-1);
fast_sort(arr,i+1,right);
}
int* MySort(int* arr, int arrLen, int* returnSize ) {
/* //冒泡排序
int temp;
for (int i=0;i<arrLen-1;i++) //多少轮
{
for(int j = 0;j<arrLen-1-i;j++) //每轮多少次排序
{
if(arr[j+1] < arr[j])
{
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}*/
fast_sort(arr,0,arrLen-1);
*returnSize = arrLen;
return arr;
}