首页 > 试题广场 >

排序

[编程题]排序
  • 热度指数:305525 时间限制: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]
头像 LifelongCode
发表于 2021-01-10 19:17:00
调用库函数Arrays.sort 冒泡排序BubbleSort 快速排序QuickSort 归并排序MergeSort 堆排序HeapSort 优先级队列PriorityQueue 解法1:调用库函数Arrays.sort import java.util.Arrays; public class 展开全文
头像 数据结构和算法
发表于 2021-03-21 22:04:17
1,快速排序 快速排序原理是首先要找到一个中枢,把小于中枢的值放到他前面,大于中枢的值放到他的右边,然后再以此方法对这两部分数据分别进行快速排序。先看一下代码 public int[] MySort(int[] arr) { quickSort(arr, 0, arr.len 展开全文
头像 初级情书
发表于 2021-03-13 00:02:15
本题虽然考察的知识点很简单,但是想要程序在规定时间内跑完并且正确的话,就必须舍弃冒泡排序、选择排序和插入排序这三种较为低级的排序算法。八大排序中还剩下很多可以用的算法,例如:希尔排序、快速排序、堆排序、基数排序、归并排序。由于基数排序可能会导致内存超标(没测试过),而且写起来比较麻烦,所以我们选择听 展开全文
头像 做错就掌嘴
发表于 2020-12-20 20:42:56
如果你想简单: import java.util.*; public class Solution { public int[] MySort (int[] arr) { Arrays.sort(arr); return arr; } }如果你想归并: imp 展开全文
头像 王清楚
发表于 2021-08-13 11:11:03
选择排序c++ class Solution { public: //选择排序 vector<int> MySort(vector<int>& arr) { // write code here int n = arr. 展开全文
头像 雍子狸
发表于 2022-03-18 16:26:11
冒泡排序: class Solution: def MySort(self , arr: List[int]) -> List[int]: # write code here for i in range(len(arr)): f 展开全文
头像 子夜降晴空
发表于 2021-03-09 17:13:41
class Solution { public: void quickSort(vector<int>& arr, int left, int right) { if(left >= right) // 递归中断条件 retu 展开全文
头像 bewatching
发表于 2021-03-22 11:13:56
1:首先取序列第一个元素为基准元素pivot=R[low]。i=low,j=high。 2:从后向前扫描,找小于等于pivot的数,如果找到,R[i]与R[j]交换,i++。 3:从前往后扫描,找大于pivot的数,如果找到,R[i]与R[j]交换,j--。 4:重复2~3,直到i=j,返回该位置m 展开全文
头像 不经历怎么能成长
发表于 2021-03-24 18:36:21
快速: class Solution { public: vector<int> MySort(vector<int>& arr) { // write code here quickSort(arr,0,arr.size()- 展开全文
头像 LaN666
发表于 2021-02-28 17:36:25
排序 冒泡排序(稳定排序) 思想:冒泡排序的思想就是比较当前数和后一个数的大小,将较大的数往后移动,这样可以确保一轮下来能将最大的数放在数组的最末端。然后重复此操作即可完成排序。 上面第一轮比较完,我们可以看到最大的数5已经被放在了最端,此时我们只需要将去掉最大的数的那部分(2,3,1,4)进行重 展开全文