zoukankan      html  css  js  c++  java
  • 有趣的排序

    度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:
    任取数组中的一个数然后将它放置在数组的最后一个位置。
    问最少操作多少次可以使得数组从小到大有序? 
    输入描述:
    首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)


    输出描述:
    输出一个整数表示最少的操作次数。

    输入例子1:
    4
    19 7 8 25

    输出例子1:

    2

    思路很简单,类似插入排序。

    直接上代码

    #include <bits/stdc++.h>
    using namespace std;
    
    int Sort (int a[], int aa[], int n) {
        int i, j, k, l, cnt = 0;
        for (i = 0; i < n - 1; ++i) {
            for (j = 0; j < n; ++j) {
                if (a[j] == aa[i]) {
                    k = j;
                }
                if (a[j] == aa[i + 1]) {
                    l = j;
                }
            }
            if (k > l) {
                int tmp = a[n - 1];
                a[n - 1] = a[l];
                for (int t = l; t < n - 2; ++t) {
                    a[t] = a[t + 1];
                }
                a[n - 2] = tmp;
                cnt++;
            }
        }
        return cnt;
    }
    
    int main() {
        int n;
        cin >> n;
        int a[50] = {0}, aa[50] = {0};
        for (int i = 0; i < n; ++i) {
            scanf("%d", &a[i]);
            aa[i] = a[i];
        }
        sort(aa, aa + n);
        printf("%d
    ", Sort (a, aa, n));
        return 0;
    }

  • 相关阅读:
    github的使用
    QPalette的用法
    QTimer的用法
    QStatusBar的用法
    QWhatsThis的用法
    QString::​arg的用法
    qt中ui的 使用介绍
    安全协议IPSEC
    安全协议ssl
    对称加密和非对称加密
  • 原文地址:https://www.cnblogs.com/deepspace/p/10260720.html
Copyright © 2011-2022 走看看