列表

详情


QQ11. 小Q的排序

描述

小Q在学习许多排序算法之后灵机一动决定自己发明一种排序算法,小Q希望能将n个不同的数排序为升序。小Q发明的排序算法在每轮允许两种操作:

1、 将当前序列中前n-1个数排为升序

2、 将当前序列中后n-1个数排为升序

小Q可以任意次使用上述两种操作,小Q现在想考考你最少需要几次上述操作可以让序列变为升序。

输入描述

输入包括两行,第一行包括一个正整数n(3≤n≤10^5),表示数字的个数

第二行包括n个正整数a[i](1≤a[i]≤10^9),即需要排序的数字,保证数字各不相同。

输出描述

输出一个正整数,表示最少需要的操作次数

示例1

输入:

6
4 3 1 6 2 5

输出:

2

原站题解

Pascal 解法, 执行用时: 1ms, 内存消耗: 260KB, 提交时间: 2020-09-07

begin
write(2);
end.

C++14 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2020-08-01

#include<stdio.h>
int main()
{
    printf("2");
    return 0;
}

Pascal 解法, 执行用时: 2ms, 内存消耗: 256KB, 提交时间: 2019-04-14

begin
write(2);
end.

C 解法, 执行用时: 2ms, 内存消耗: 376KB, 提交时间: 2020-08-21

#include<stdio.h>
int main()
{
    printf("2");
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 376KB, 提交时间: 2020-08-19

#include<stdio.h>
int main()
{
    printf("2");
    return 0;
}

上一题