题目:小摩有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的小摩只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?
输入描述:
首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)
输出描述:
输出一行操作数
code:
n = int(input())
a = input().split()
def quick_sort(lists, left, right):
if left > right:
return lists
low = left
high = right
key = lists[left]
while left < right:
if left < right and lists[right] >= key:
right -= 1
lists[left] = lists[right]
if left < right and lists[left] <= key:
left += 1
lists[right] = lists[left]
lists[right] = key
quick_sort(lists, low, left - 1)
quick_sort(lists, left + 1, high)
return lists
a1 = a.copy()
a2 = quick_sort(a1, 0, len(a1) - 1)
cnt = 0
j = 0
for i in range(n):
if a[i] == a2[j]:
j += 1
cnt += 1
print(n - cnt)
程序运行结果:
2
网友评论