给定一个包含 n 个整数和一个整数 x 的未排序数组 A,重新排列 A 中的元素
Given an unsorted array 𝐴 of n integers and an integer x, rearrange the elements in 𝐴
给定一个包含 n 个整数和一个整数 x 的未排序数组 A,重新排列 A 中的元素,以便所有小于或等于 x 的元素都位于大于 x 的任何元素之前。
注意:不必在新数组中包含整数x。
算法的运行时间复杂度是多少?解释你的答案。
要尝试此操作,您首先需要了解排序算法,Big O 表示法,然后查看哪种排序算法最适合所提出的问题。
1(鉴于您的问题,定义一些值在设定点之前,而一些值在设定点之后,合并排序在这里是最好的。看到这里。
2(阅读大O符号,以及某些排序算法的时间复杂度。总有最好的情况和最坏的情况。您还可以使用此表示法计算您设计的任何算法的复杂性。见下文。
计算算法的复杂性
编辑:为了提供帮助,这里有一个解决方案。
篇一:
function sortHalf(List listToSort, value x):
List firstHalf;
List secondHalf;
for (Integer i in listToSort):
if i less than x then firstHalf.add(i);
else if i greater than x then secondHalf.add(i);
loop
List finalList;
finalList.addAll(firstHalf);
finalList.addAll(secondHalf);
return finalList;
end
篇二:
上述算法的时间复杂度为O(n)
,其中n
是listToSort
中元素的数量。最好的情况是O(1)
,其中有 1 个元素,最坏的情况是O(n)
相关文章:
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- 如何将一个数组值合并为一个整数c++
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 我可以将迭代器递增一个整数吗?
- 有没有办法生成一个包含平方的序列,这些平方加起来就是一个整数平方?
- 我正在尝试制作一个程序,在添加 n 天(整数)后告诉一个人什么是一天(例如星期一等)
- 为什么将两个浮点数相加会得到一个整数C++?
- 编写一个读取五个整数并执行一些任务的C++程序
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 给枚举一个整数,并在 C++ 中将其相关值作为字符串获取
- 我需要编写一个程序来读取一个文件,该文件将输出所有唯一的整数,如果已经看到整数,它将被关闭
- 按升序输出整数时,将最后一个整数放在新行上
- 编写一个程序,提示用户输入一个整数,然后输出数字的单个数字和数字的总和
- 我在c++中遇到了一个奇怪的错误,其中一个计算2个小整数加法的语句溢出到一个长值中
- 如何在C++中将一个值拆分为一个十进制整数
- 给定一个整数 N>0,区间 [0, 2^N) 中有多少个整数正好有 N-1 个设置位?编写一个返回正确答案的简短函数
- 我必须更改我的数字最后一个数字和第一个数字,但不要使用仅带有整数或循环的函数.例如从 12345 到 52341
- 将整数范围映射到另一个范围