蛮力法设计技术

简介: 实验内容: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



相关文章
|
监控 算法
公司文档管理软件中的必备工具:迪杰斯特拉算法的作用
迪杰斯特拉算法是一种解决加权有向图中单源最短路径问题的算法。该算法适用于从一个节点到其他所有节点的距离计算,并可以使用堆优化来提高时间效率。
217 0
|
23天前
|
机器学习/深度学习 人工智能 测试技术
探索软件测试中的“禅”:寻找内在的平和与外在的效率####
在软件测试的世界里,我们常常被缺陷的数量、测试用例的覆盖度以及上线时间的紧迫性所困扰。但如果我们能像禅宗修行者一样,将注意力转向内心的平静与专注,或许能在纷繁复杂的测试工作中找到一种全新的效率和质量提升之道。本文将带您走进软件测试的“禅意世界”,探讨如何在看似枯燥无味的测试过程中,通过调整心态、优化方法,实现个人成长与项目成功的双赢。 ####
|
22天前
|
算法 编译器 程序员
深入调查研究尾递归优化
【10月更文挑战第21天】
21 1
|
6月前
|
算法 搜索推荐 数据挖掘
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
92 1
|
负载均衡 监控 算法
转:启发式算法对网络行为管理系统的应用研究、实用性分析及实现难度
启发式算法在网络行为管理系统中的应用研究是一个重要的领域,它可以帮助改善系统的性能和效率。启发式算法是一种通过模拟自然界的演化过程或启发式规则来解决复杂问题的方法。
84 2
|
算法
借助模糊逻辑将文化算法与和谐搜索相结合进行学习——文化和谐学习算法(Matlab代码实现)
借助模糊逻辑将文化算法与和谐搜索相结合进行学习——文化和谐学习算法(Matlab代码实现)
126 0
|
算法
陶哲轩攻克60年几何学难题!发现「周期性密铺猜想」在高维空间反例
陶哲轩攻克60年几何学难题!发现「周期性密铺猜想」在高维空间反例
179 0
|
机器学习/深度学习 存储 人工智能
啊哈 算法读书笔记 第 1 章 一大波数正在靠近——排序
首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同 学们的分数按照从高到低排序。小哼的班上只有 5 个同学,这 5 个同学分别考了 5 分、 3 分、 5 分、 2 分和 8 分,哎考得真是惨不忍睹(满分是 10 分)。接下来将分数进行从大到小排序, 排序后是 8 5 5 3 2 。你有没有什么好方法编写一段程序,让计算机随机读入 5 个数然后将这 5 个数从大到小输出?
87 0
|
Oracle 关系型数据库
论文赏析[AI18]更快的基于非二叉化自底向上策略的转移系统成分句法分析(一)
这篇论文提出了一种非二叉化、自底向上的转移系统,并且针对它提出了一种Dynamic Oracle,用损失函数的形式来实现它。
184 0
论文赏析[AI18]更快的基于非二叉化自底向上策略的转移系统成分句法分析(一)
下一篇
无影云桌面