首页 > 试题广场 >

排序

[编程题]排序
  • 热度指数:311877 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的数组,请你编写一个函数,返回该数组按升序排序后的结果。

数据范围: ,数组中每个元素都满足
要求:时间复杂度 ,空间复杂度
进阶:时间复杂度 ,空间复杂度

注:本题数据范围允许绝大部分排序算法,请尝试多种排序算法的实现。
示例1

输入

[5,2,3,1,4]

输出

[1,2,3,4,5]
示例2

输入

[5,1,6,2,5]

输出

[1,2,5,5,6]
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 将给定数组排序
 * @param arr int整型一维数组 待排序的数组
 * @return int整型一维数组
 */
function MySort(arr) {
    // write code here
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = 0; j < arr.length; j++) {
            if (arr[j + 1] < arr[j]) {
                let t = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = t
            }
        }
    }
    return arr
}

module.exports = {
    MySort: MySort
};
简单冒个泡
发表于 2022-09-03 16:43:05 回复(0)
/**
 * 使用sort函数
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 将给定数组排序
 * @param arr int整型一维数组 待排序的数组
 * @return int整型一维数组
 */
function MySort( arr ) {
    return arr.sort((a,b)=>a-b)
}
module.exports = {
    MySort : MySort
};


发表于 2021-09-10 00:19:29 回复(0)
function MySort( arr ) {
    return quick(arr,0,arr.length-1)
}
function quick(array, left, right) {
  let index;
  if (array.length > 1) {
    index = partition(array, left, right);
    if (left < index - 1) {
      quick(array, left, index - 1);
    }
    if (index < right) {
      quick(array, index, right);
    }
  }
  return array;
}
function partition(array, left, right) {
  const pivot = array[Math.floor((left + right) / 2)];
  let i = left,
    j = right;
  while (i <= j) {
    while (array[i] < pivot) {
      i++;
    }
    while (array[j] > pivot) {
      j--;
    }
    if (i <= j) {
      [array[i], array[j]] = [array[j], array[i]];
      i++;
      j--;
    }
  }
  return i;
}
发表于 2021-08-22 01:12:33 回复(0)