蛮力法设计技术

简介: 实验内容:1.算法设计2.程序设计3.复杂度分析4.实验结果5.实验总结:

实验内容:

给定一个整数数组A=(a0,a1,…,an-1),如果i<j且ai>aj,则<ai,aj>是一个逆序对,例如数组(3,1,4,5,2)的逆序对有<3,1>,<2,2>,<4,2>,<5,2>。设计一个穷举算法求A中的逆序对的个数。


1.算法设计

对于一个给定的数组序列,依次从左往右取每一个元素,从该元素右边第一个元素开始向右扫描,遇到比它小的元素,则计数+1,直到处理完整个序列。


2.程序设计

//
// Created by = on 2023/4/18.
//
#include<iostream>
using namespace std;
int main() {
    int a[] = {3, 1, 4, 5, 2};
    int x = 0;
    int len=sizeof(a)/sizeof(int);
    int i, j;
    for (i = 0; i < len-1; i++)
        for (j = i + 1; j < len; j++)
            if (a[i] > a[j])
                x++;
    cout<<"暴力法计算逆序对个数为 "<<x<<endl;
}


3.复杂度分析

(1)时间复杂度

O(n2)

(2)空间复杂度

O(n)


4.实验结果

结果一


32.png


结果二

33.png



相关文章
|
机器学习/深度学习 人工智能 算法
详解机器学习概念、算法
详解机器学习概念、算法
详解机器学习概念、算法
|
Linux 数据安全/隐私保护 Windows
Linux vsFTPd服务详解——本地用户登录实战
Linux vsFTPd服务详解——本地用户登录实战
376 2
|
人工智能 监控 机器人
【Valgrind】如何使用Valgrind监控内存
【Valgrind】如何使用Valgrind监控内存
|
存储 缓存 Linux
【Shell 命令集合 磁盘维护 】Linux 设置和查看硬盘驱动器参数 hdparm命令使用教程
【Shell 命令集合 磁盘维护 】Linux 设置和查看硬盘驱动器参数 hdparm命令使用教程
450 0
|
数据可视化 Linux C++
Python GUI编程:Tkinter与PyQt的选择
Python作为一门流行的编程语言,在GUI编程领域也有着非常强大的工具。其中,Tkinter和PyQt是两个备受推崇的GUI库。本文将介绍这两个库的优缺点,并帮助读者决定应该选择哪一个。
|
5月前
|
安全 前端开发 Java
理解 Spring Security 的 HttpMethod 和路径匹配
本文深入解析了Spring Security中`HttpMethod`与路径匹配的使用方法及其常见问题。通过具体示例,阐明了如何针对不同HTTP方法(如GET、POST)和路径(如`/api/products`与`/products`)设置权限,避免用户绕过限制访问核心数据。同时,强调了配置顺序和角色前缀的重要性,并提供了最佳实践,帮助开发者精准控制应用的安全性。
140 1
|
11月前
Element-UI组件的使用
【10月更文挑战第1天】
221 0
|
存储 安全 编译器
缓冲区溢出之栈溢出(Stack Overflow
【8月更文挑战第18天】
460 3
|
知识图谱
滚动轴承常见故障及其基本模型
滚动轴承常见故障及其基本模型
357 0
|
机器学习/深度学习 运维 监控
智能化运维:未来数据中心的守护者
【6月更文挑战第11天】在数字化浪潮不断推进的今天,数据中心作为企业信息架构的核心,其稳定性和高效性对企业运营至关重要。本文将探讨智能化运维如何通过先进的技术手段,实现对数据中心的实时监控、自动化管理与故障预防,从而确保企业IT基础设施的高可用性和性能优化。