自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 软件工程项目

九宫记忆网1.1开发背景随着工作和生活节奏的不断加快,属于自己的私人时间越来越少,日记这种传统的倾诉方式也逐渐被人们淡忘,取而代之的是各种各样的网络日志。最近网络中又出现了一种全新的日记方式一九宫格日记,它由9个方方正正的格子组成,让用户可以像做填空题那样对号入座,填写相应的内容,从而完成一篇日记,整个过程不过几分钟,非常适合在快节奏的生活中,留下自己的心灵足迹。1.2 需求分析通过实际调查,要求九宫格日记网具有以下功能:1.为了更好地体现九宫格日记的特点,需要以图片的形式保存每篇日记,

2020-12-29 21:19:44 1168 1

原创 子集和问题。

问题描述:给定集合S,S中有n个正整数,M是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1中各元素之和等于M。请设计回溯法求解子集和问题,如果问题无解,输出“No Solution”,问题有解,则输出满足子集S1中各元素的值。#include <iostream>using namespace std;const int N = 10005;int a[N], n, m, rec[N];bool nu;void dfs(int start, int sum, int c

2020-12-21 21:03:01 251

原创 喷水装置

长L米,宽W米的草坪里装有n个浇灌喷头。每个喷头都装在草坪中心线上(离两边各W/2米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到的浇灌范围。请问:如果要同时浇灌整块草坪,最少需要打开多少个喷头?输入格式:输入包含若干组测试数据。第一行一个整数T表示数据组数。每组数据的第一行是整数n、L和W的值,其中n≤10 000。接下来的n行,每行包含两个整数,给出一个喷头的位置和浇灌半径。如图1所示的示意图是样例输入的第一组数据所描述的情况。图1输出格式:对每组测试数据输出

2020-12-15 21:01:41 128

原创 活动选择问题

假定一个有n个活动(activity)的集合S={a​1​​ ,a​2​​ ,…,a​n​​ },这些活动使用同一个资源(例如同一个阶梯教室),而这个资源在某个时刻只能供一个活动使用。每个活动a​i​​ 都有一个开始时间s​i​​ 和一个结束时间f​i​​ ,其中0<=s​i​​ <f​i​​ <=32767。如果被选中,任务a​i​​ 发生在半开时间区间[s​i​​ ,f​i​​ )期间。如果两个活动a​i​​ 和a​j​​ 满足[s

2020-12-09 13:47:24 344

原创 分形的递归输出

分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。一个盒状分形定义如下: 度为1的盒分形为:X度为2的盒分形为:X XXX X依次类推,如果B(n-1)表示n-1度的盒分形,则n度的盒分形递归定义如下:B(n - 1) B(n - 1) B(n - 1)B(n - 1) B(n - 1)请画出度为n的盒分形的图形输入格式:输入一

2020-12-05 22:08:29 149

原创 最优分解问题。

设n是一个正整数,要求将n分解为若干互不相同的自然数之和,且这些自然数的乘积最大。输入:正整数n输出:计算的最大乘积。如输入10,则输出30.提示:若a+b=const ,则a-b的绝对值越小,ab值越大。贪心策略:将n分成从2开始的连续自然数之和,如果最后剩下一个数,则将此数在后项优先的方式下均匀地分给前面各项。#include<iostream>#include<cstdio>using namespace std;int a[1000];int n;int

2020-12-02 22:10:11 1653

原创 改写二分搜索算法

设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。输入格式:输入有两行:第一行是n值和x值; 第二行是n个不相同的整数组成的非降序序列,每个整数之间以空格分隔。输出格式:输出小于x的最大元素的最大下标i和大于x的最小元素的最小下标j。当搜索元素在数组中时,i和j相同。 提示:若x小于全部数值,则输出:-1 0 若x大于全部数值,则输出:n-1的值 n的值输入样例

2020-12-01 20:32:52 541

原创 换硬币

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。输入样例:13输出样例:fen5:2, fen2:1, fen1:1, total:4fen5:1, f

2020-11-29 16:04:23 609

原创 循环日程表

设有N个选手进行循环比赛,其中N=2的M次方​ ,要求每名选手要与其他N−1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N−1天,要求每天没有选手轮空。输入格式:输入:M(M<=7)。输出格式:输出:表格形式的比赛安排表。一行各数据间用一个空格隔开。输入样例:3输出样例:在这里给出相应的输出。例如:1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 1 8 7 6 55 6 7 8 1 2 3 46 5 8 7 2 1

2020-11-25 11:58:19 332

原创 装箱问题

假设有N项物品,大小分别为s1,s2,s3…si…sn​​ ,其中si​ 为满足1≤si​ ≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数si​ (1≤si​ ≤100,表示第i项物品的大小)。输出格式:按照输入顺序输出每个物品的

2020-11-24 17:11:40 400

原创 分治法

在一个2^k * 2k(k为正整数,k<=10,length=2k)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格(其坐标为aa,bb,分别代表行坐标号和列坐标号),以及有四种L型骨牌(如下图)。求用若干块这种L型骨牌实现除该特殊点棋盘的全覆盖。(本题要求采用分治算法做)输入格式:输入三个数,分别是aa,bb,length.输出格式:输出整个棋盘。其中特殊方格填为0,然后铺棋盘的顺序为:先铺四个子棋盘交界的部分,然后递归的对每个子棋盘按照左上,右上,右下,左下的顺时针

2020-11-23 15:48:17 129

原创 Fibonacci数列

无穷数列1,1,2,3,5,8,13,21,34,55,……,称为Fibonacci数列。它可以递归地定义为:第n个Fibonacci数可递归地计算如下:int fibonacci(int n){if (n <= 1) return 1;return fibonacci(n-1)+fibonacci(n-2);}编写完整的主函数,分别记录利用上述递归函数求第47, 48, 49, 50, 51,52个Fibonacci数所花费的时间。package work;public clas

2020-11-18 20:33:30 976

转载 二分法查找

[一维数组,折半查找]假如有一组数为3,12,24,36,55,68,75,88要查给定的值24.可设三个变量front,mid,end分别指向数据的上界,中间和下界,mid=(front+end)/2.1.开始令front=0(指向3),end=7(指向88),则mid=3(指向36)。因为a[mid]>x,故应在前半段中查找。2.令新的end=mid-1=2,而front=0不变,则新的mid=1。此时x>a[mid],故确定应在后半段中查找。3.令新的front=mid+1=2,而

2020-11-16 18:38:35 97

原创 2020-11-15

由0到4五个数字,组成5位数,每个数字用一次,但十位和百位不能为3(当然万位不能为0),输出所有可能的五位数。#include<stdio.h> void main() { int a, b, c, d, e, n = 0, h=0; for (a = 0;a <= 4;++a) { for (b = 0;b <= 4;++b) { for (c = 0;c <= 4;++c) { fo

2020-11-15 21:29:09 77

转载 int类型变量的取值范围?

int类型变量的取值范围?前言在学C语言的时候应该都会先了解各种基本数据类型的初值和它们的取值范围,有些人可能会不太重视这块内容,其实很重要,很多大公司面试的过程中都会问到int的取值范围,溢出之后会怎么样等问题。在写程序的时候有时候我们将一个很大的int型的数相加一个数,就会发现结果不对。这是为什么呢?因为这个数超过了int型的取值范围。C语言中int的取值范围为:-2147483648 ~2147483647解释如下:int类型在C语言中占4个字节,即32个二进制位。当表示正数时,最高位为符

2020-11-11 22:31:24 20218 3

原创 算法的基本概念

算法的定义算法是解题方案准确而完整的描述,是一系列解决问题的清晰指令。算法对于一定规范的输入,在有限的时间内能获得所需要求的结果。算法的要素数据对象的运算和操作在计算机系统中,基本的运算和操作有以下四类:算数运算,包括加、减、乘、除等逻辑运算,包括与、或、非等关系运算,包括等于、大于、小于等数据传输,包括输入、输出、赋值算法的控制结构算法中各操作之间的执行顺序称为算法的控制结构,有三种基本控制结构:顺序结构。各运算和操作按先后顺序执行。选择结构(分支结构)。根据条件选择相

2020-11-10 16:35:07 1598

转载 什么是浏览器跨域访问操作

跨域是指不同域名之间相互访问。JavaScript同源策略的限制,A域名下的JavaScript无法操作B或是C域名下的对象实现:1、JSONP跨域:利用script脚本允许引用不同域下的js实现的,将回调方法带入服务器,返回结果时回调2、跨域资源共享(CORS)跨域资源共享(CORS)是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源CORS与JSONP相比:a、JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求b、使用CORS,开

2020-11-09 18:30:18 138

转载 ajax请求中url中的相对路径和绝对路径

绝对路径即包含完全请求路径,即请求头,主机地址,端口,项目名等都有,在这个例子中,绝对路径为http://localhost:8080/HotelSSM/system/login相对路径url中的相对路径分为两种:有’/‘符号,在这个例子中,/system/login即为这一种,开头的’/'是指根路径,其相对的是服务器的根路径,即为http://localhost:8080。所以当我填写为/system/login时,访问的路径会变为http://localhost:8080/system.

2020-11-06 15:02:05 842

转载 枚举法

在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做枚举法.特点将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。例如:找出1到100之间的素数,需要将1到100之间的所有整数进行判断。枚举算法因为要列举问题的所有可能的答案,所以它具备以下几个特点:1、得到的结果肯定是正确的;2、可能做了很多的无用功,浪费了宝贵的时间,效率低下。3、通常会涉及到求极值(如最大,最小,最重等)。4、数据量大的话

2020-11-04 22:07:45 791

原创 汉诺塔问题

汉诺塔问题,是心理学实验研究常用的任务之一。该问题的主要材料包括三根高度相同的柱子和一些大小及颜色不同的圆盘,三根柱子分别为起始柱A、辅助柱B及目标柱C。//汉诺塔n盘移动次数#include<stdio.h>void main(){double g(int m);int n;printf("请输入盘片数n:");scanf("%d",&n);if(n<=40)printf("%d盘的移动次数:%.0f\n",n,g(n));elseprintf("%d盘

2020-11-03 22:56:39 112

转载 贪心算法

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 [1] 。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。也就是说,不从整体最优上加以考虑,做出的只是在某种意义上的局部最优解1.钱币找零问题这个问题在我们的日常生活中就更加普遍了。假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K元,至少要用

2020-11-02 21:25:47 263

转载

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。基本算法1.进栈(PUSH)算法①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);②置TOP=TOP+1(栈指针加1,指向进栈地址);

2020-11-01 18:02:27 67

转载 二叉树的遍历

二叉树的深度优先遍历可细分为前序遍历、中序遍历、后序遍历,这三种遍历可以用递归实现(本篇随笔主要分析递归实现),也可使用非递归实现的前序遍历:根节点->左子树->右子树(根->左->右)中序遍历:左子树->根节点->右子树(左->根->右)后序遍历:左子树->右子树->根节点(左->右->根)在进行已知两种遍历顺序求另一种遍历顺序前,先看一下不同遍历顺序对应的代码前序遍历 1/* 以递归方式 前序遍历二叉树 */ 2 vo

2020-10-30 10:04:34 131

转载 8皇后问题

八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。分析我们可以逐行或者逐列来进行可行摆放方案的遍历,每一行(或列)遍历出一个符合条件的位置,接着就到下一行或列遍历下一个棋子的合适位置,这种遍历思路可以保证我们遍历过程中有一个条件是绝对符合的——就是下一个棋子的摆放位置与前面的棋子不在同一行(或列)。接下来,我们只要判断当前

2020-10-28 20:41:30 247

转载 回溯法

回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。算法框架问题的解空间应用回溯法求解问题时,首先应明确定义问题的解空间,该解空间应至少包含问题的一个最优解。例如,对于有n种物品的 0-1 背包问题,其解空间由长度为n的 0-1 向量组成,该解空间包含了对变量的所有可能的0-1 赋值。当 n=3 时,其解空间是{

2020-10-27 19:28:49 429

转载 内置对象session和httpSession是同一个东西吗?

HttpSession 服务端的技术服务器会为每一个用户 创建一个独立的HttpSessionHttpSession原理当用户第一次访问Servlet时,服务器端会给用户创建一个独立的Session并且生成一个SessionID,这个SessionID在响应浏览器的时候会被装进cookie中,从而被保存到浏览器中当用户再一次访问Servlet时,请求中会携带着cookie中的SessionID去访问服务器会根据这个SessionID去查看是否有对应的Session对象有就拿出来使用;没有就创.

2020-10-26 14:57:37 118

转载 递归算法

递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。递归程序在支持自调用的编程语言中,递归可以通过简单的函数调用来完成,如计算阶乘的程序在数学上可以定义为:

2020-10-25 12:03:50 155

转载 为什么软件开发方法让你觉得糟糕

围绕软件开发实践和方法论,总有很多教条式的口水仗。阶段式(phase-gate)方法能够有效管理软件开发过程的风险,还是说只是风险管理中的花哨噱头?TDD真的能够促生出高品质软件?结对编程是代码评审的有效替代抑或只是增加了商议沟通代价?我想说,虽然缺乏证据判断这些论调的谬处,但有两条常用的法则能够帮助我们选择好的实践,同时,提升我们所提供软件的价值:划小开发周期以及提升反馈效率。Michael Feathers给出了以下观点:我认为,我们最终还是得倚重开发者的能力,这才是个更重要的考量因素,而非选择哪门

2020-10-23 12:52:43 78

转载 递推

递推算法是一种用若干步可重复运算来描述复杂问题的方法。递推是序列计算中的一种常用算法。通常是通过计算前面的一些项来得出序列中的指定项的值***递推算法植树节那天,有五位同学参加了植树活动,他们完成植树的棵树都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;… 如此,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树?分析:设第一位同学植树的棵树为a1,欲求a1,需从第五位同学植树的棵数

2020-10-22 22:51:28 329

转载 MVC,MVP和MVVM的区别

后端已经进入了后REST时代,RESTful将MVC和MVP和MVVM从后端服务器端压缩到了前端,从而实现了前后端分离,前端目前以React.js Vue.js为主,ReactJS是通过事件源这种函数式实现模型和视图的绑定更新(Redux与Flux介绍),因此可以说,MVC, MVP和MVVM实则是过去落后的技术名词。但是初学者可能需要了解这些之间区别,特别找到一篇文章翻译如下:MVC,MVP和MVVM是指导程序员创建解耦解决方案的一些常见模式。MVC,MVP和MVVM共有的软件行为是:数据层/业务逻

2020-10-21 11:33:32 246

转载 排序算法

概述所谓排序算法,即通过特定的算法因式将一组或多组数据按照既定模式进行重新排序。这种新序列遵循着一定的规则,体现出一定的规律,因此,经处理后的数据便于筛选和计算,大大提高了计算效率。对于排序,我们首先要求其具有一定的稳定性,即当两个相同的元素同时出现于某个序列之中,则经过一定的排序算法之后,两者在排序前后的相对位置不发生变化。换言之,即便是两个完全相同的元素,它们在排序过程中也是各有区别的,不允许混淆不清。分类排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)

2020-10-20 11:37:55 123

转载 动态规划

动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果 [1] 。 [2]原理动态规划问世以来,在经济管理、生产调度、工程技术和

2020-10-19 22:29:24 1476

转载 多线程

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理” [1] 。简介在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,

2020-10-18 21:05:58 182

转载 哈希表

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对

2020-10-17 20:33:09 117

转载 什么是形式化方法

形式化方法英文的名称是formal methods。在逻辑科学中是指分析、研究思维形式结构的方法。它把各种具有不同内容的思维形式(主要是命题和推理)加以比较,找出其中各个部分相互联结的方式,如命题中包含概念彼此间的联结,推理中则是各个命题之间的联结,抽取出它们共同的形式结构;再引入表达形式结构的符号语言,用符号与符号之间的联系表达命题或推理的形式结构。例如,把全称肯定命题,用符号形式化为“SAP”;把联言命题、假言命题分别形式化为:“p∧q、“p→q”。又例如:一个具体的假言联言推理“如果这种金属是纯铝,那

2020-10-16 22:00:31 333

转载 为什么软件开发周期通常是预期的两三倍?

导读:有国外开发者在 Quora 提了这个问题:“为什么软件开发周期通常是预期的两三倍?” 并补充问:“这是开发人员的错误? 是管理失误? 是因为做事方法不对, 或者说缺乏好的方法?还是说这就是软件开发流程的特点?” Michael Wolfe 在2012年1月28日给的回复,非常经典,截至我们发布时已有8016个赞。以下是译文。让我们先沿着海岸线,从旧金山(SF)走路去洛杉矶(LA),去拜访我们住在Newport Beach的朋友,我拿出地图在上面画出了行进路线。第二天清晨,我们带着准备冒险的兴奋起床

2020-10-14 22:27:36 108

转载 有人负责,才有质量:写给在集市中迷失的人

13年前,新兴的草根开源软件运动如火如荼,而Eric Raymond的《大教堂与集市》(O’Reilly Media, 2001)一书则重新定义了我们的词汇表,几乎预言了瀑布模型和大型软件公司的终结。这本书有煽动性,但却没有说服我。与此同时,由于我正全身心投入开源运动,也就情不自禁地宁愿相信他是对的。而今年夏天我带到海滨别墅来的这本书,同样有煽动性,比Raymond那本更甚(但这本书在提到《大教堂与集市》时是相当正面的),那就是Frederick P. Brooks的《设计原本》(Addison-Wesl

2020-10-13 09:45:59 105

原创 软件工程方法论对软件开发有多大好处?

软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm) 。在软件工程领域中,这两个术语的含义基本相同。软件工程方法学包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回等“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境

2020-10-12 09:28:46 360

转载 软件工程是不是教会不怎么会写程序的人开发软件呢?

软件工程的基本内容:软件工程原理、软件工程过程、软件工程方法、软件工程模型、软件工程管理、软件工程度量、软件工程环境、软件工程应用、软件工程开发使用。著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理:  (1)用分阶段的生存周期计划进行严格的管理。  (2)坚持进行阶段评审。  (3)实行严格的产品控制。  (4)采用现代程序设计技术。  (5)软件工程结果应能清楚地审查。  (6)开发小组的人员应该少而精

2020-10-11 21:05:06 74

转载 2020-09-21

只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?方法一:位运算如果没有时间复杂度和空间复杂度的限制,这道题有很多种解法,可能的解法有如下几种。使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字使用哈希表存储每个数字和该数字出现的次数。遍

2020-09-21 23:25:22 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除