美文网首页【python公司校招题】
【python摩拜】排序次数?

【python摩拜】排序次数?

作者: 阿牛02 | 来源:发表于2019-08-09 17:17 被阅读0次

    题目:小摩有一个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

    相关文章

      网友评论

        本文标题:【python摩拜】排序次数?

        本文链接:https://www.haomeiwen.com/subject/nmihjctx.html