用冒泡排序,最多排n-1趟,每趟最多比较次数依次为为n-1,n-2,n-3,……3,2,1次
从后往前比较,遇到后数小于前数的,就把二者交换位置,否则指针前移继续比骄。
每趟初始都要设置一个标记,记录是否出现过交换。出现交换就改变标记值
如果某一趟中,没有出现交换,标记值未改变,可以判断已经排好序,收网。
int* MySort(int* arr, int arrLen, int* returnSize ) {
    int i = 0, j = 0;
    *returnSize = arrLen;  //不写会报错,须指明返回数组的大小
    for(i = 0; i<arrLen-1; i++){  //下标从0到i是排好序的,初始有序个数为0
        int flag = 1;  //每趟的标记
        for(j = arrLen-1; j>i; j--)  //从后往前比较,截至下标为i+1处
        if(arr[j-1] > arr[j]){  //前数<后数时,交换三部曲
            int tmp = arr[j-1];
            arr[j-1] = arr[j];
            arr[j] = tmp; 
            flag = 0;   //标记值改变
        }
        if(flag == 1)
            return arr;  //一趟下来,没有出现交换的,说明已排好序,收网
    }   //如果出现交换,就继续下一趟比较
    return arr;  //比较n-1趟之后,返回最后数组
}