java减治法深度优先查找_排序|减治法实现排序

总结一下排序嘿;)

有插入排序和拓扑排序。

1.插入排序/直接插入排序

假设对较小的数组A[0...n-2]已经排好序了,然后把A[n-1]找到一个合适的位置插进去。一般来说是从右向左扫描这个有序的数组,直到遇到第一个小于A[n-1]的元素,然后把A[n-1]插在这个元素的后面,插入的这个位置往往不是最终的位置。

for ( int i = 1; i < a.length; i++) {

int v =a[i];

int j=i-1;

while(j>=0&& a[j]>v) {

a[j+1] = a[j];

j--;

}

a[j+1]=v;

}

最坏的情况是输入一个严格递减的数组,C(worst)=((n-1)*n)/2。在这种情况下和蛮力法中的冒泡排序的键值比较次数是完全相同的。最好的情况是按照升序排列的数组,C(best)=n-1。对该算法平均效率的分析主要基于对无序数组的研究,平均比较次数是降序数组的一半,C(avg)=(n^2)/4;

2.拓扑排序

为了使拓扑排序成为可能,图必须是一个无环有向图。如果一个图没有回路,拓扑排序有解。有两种高效的算法,既可以验证一个有向图是否是一个无环有向图,又可以在是情况下,输入拓扑排序的一个顶点序列。

第一种:深度优先查找的简单应用。

执行一次DFS遍历,并记住顶点变成死端(即退出遍历栈)的顺序。将该次序反过来就得到拓扑排序问题的一个解。

第二种:基于减治技术的直接实现。

在有向图中求出一个源(一个没有任何输入边的顶点),把它和所有从它出发的边都删除。如果有多个这样的源,随意选择一个。源不存在,则无解。顶点被删除的次序是拓扑排序问题的一个解。

源删除算法获得的解和基于DFS的算法求得的解不同,两者都正确,所以,拓扑排序问题可能会有若干个不同的可选解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux服务器安装php7_CentOS 7 下 PHP 7.1.12 安装配置

Linux系统&#xff1a;CentOS 7记录在CentOS 7 下 PHP 7.1.12 安装配置的过程。先安装相关依赖包yum installpcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel e2fsprogs e2fsprogs-dev…

java试讲题目,常见的Java面试题汇总

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关于集合1、Java中的集合及其继承关系关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此.2、poll()方法和remove()方法区别&#xff1f;poll() 和 remove() 都是从队列中取出一个元素&…

快钱接口php,快钱支付接口

1.下载快钱的demo代码和一个证书包&#xff0c;还有 人民币网关自助接入接口文档2.生成自己的证书2.0.安装 Win32OpenSSL_Light-0_9_8k.exe打开openssl.exe,2.1. 输入genrsa -out private-rsa.key 1024&#xff0c;按enter即可。2.2 输入req -new -x509 -key private-rsa.key…

php 二维数组排序函数,php自定义函数实现二维数组排序功能

本文实例讲述了php自定义函数实现二维数组排序功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;/**作用: 二维数组排序函数,支持多键名排序* 返回: 排序好的数组* 使用: array_msort(数组,需要排序的键名,排序方式);* 例子: array_msort($cflist,"chapter_ord…

其他机器无法访问php,PHP 局域网其他机器无法访问的问题

刚安装wamp以后本地访问localhost或者127.0.0.1可以访问&#xff0c;但是如果局域网内其他电脑访问则出现403错误。这大都是因为服务器配置不正确的原因&#xff0c;wamp安装后默认是禁止其他机器访问的。1&#xff0c;首先确定关闭了防火墙并且80端口没有被占用2&#xff0c;修…

php sql查询占位符,使用命名占位符时PHP / SQL插入错误

我有以下PHP PDO语句&#xff1a;$STH $this->_db->prepare("INSERT INTO UserDetails (FirstName, LastName,Address, City, County, PostCode, Phone, Mobile, Sex, DOB,FundraisingAim, WeeksAim, LengthsAim, HearAboutID,MotivationID, WelcomePackID, Contac…

linux+守护进程+php,【转载】Linux 守护进程的编程方法

【转载】Linux 守护进程的编程方法原文见&#xff1a;http://www.linuxdevelop.org/tingxx/show.php?tablec&id3Linux 守护进程的编程方法作者: 北京工业大学 小胡守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发…

翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】

本文实例讲述了php各种常见经典算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;冒泡排序算法public function test() {$arr array(43, 54, 62, 21, 66, 32, 78, 36, 76, 39);var_dump($arr);echo ;$arr $this->bubblesort($arr);var_dump($arr);}public func…

php文件上传详解,PHP文件上传实例详解!!!

这篇文章主要介绍了PHP文件上传实例代码&#xff0c;需要的朋友可以参考下首先来看下上传部分的表单代码&#xff1a;文件&#xff1a; 这里有几个要注意的地方&#xff0c;首先看这句&#xff0c;这里我们采用POST方法&#xff0c;个别浏览器还支持PUT方法&#xff0c;当然这需…

php上传商品信息并显示,第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...

[TOC]手册地址:before_insert(新增之前的操作)要实现的功能上传原图片,在新增数据之前生成三张缩略图片,然后再插入数据添加商品基本信息及通过后置钩子上传商品主图思路控制器里调用模型的save()方法保存数据模型里的用前置勾子beforeInsert()保存之前把上传原图片先成三张缩略…

java下标越界的三种处理方式,数组下标越界,该怎么解决

数组下标越界package import_csv;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.sql.Connect…

commvault备份mysql,备份MySQL数据库的4种方式

备份MySQL数据库的4种方式前言我们试着想一想, 在生产环境中什么最重要&#xff1f;如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装,但是如果数据没了呢&#xff1f;这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要.那么我…

php $app-run(),Thinkphp 5.x 应用启动 App::run()

在上文加载完配置等一系列工作之后&#xff0c;进入App::run()&#xff0c;在run()方法中&#xff0c;首先通过自动加载机制拿到 Request 的一个实例接着 $config self::initCommon()初始化公共配置&#xff0c;先是 addNamespace 添加app当前所在的命名空间&#xff0c;然后 …

php react-native,React-Native+Mobx实现商城APP

这次给大家带来React-NativeMobx实现商城APP&#xff0c;React-NativeMobx实现商城APP的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。最近一直在学习微信小程序&#xff0c;在学习过程中&#xff0c;看到了 wxapp-mall这个微信小程序的项目&#xff…

mysql 流程控制语句,mysql PL(procedure language)流程控制语句

在MySQL中&#xff0c;常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句&#xff0c;它们可以进行流程控制。IF语句相当于Java中的if()...else if()...else...CASE语句相当于Java中的switch()...case A:...break;…

mysql 空闲几分钟速度变慢,MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态...

当前位置:我的异常网 MySQL MYSQL 运作一小段时间后&#xff0c;速度变得奇慢。而CPU基本MYSQL 运作一小段时间后&#xff0c;速度变得奇慢。而CPU基本空闲状态www.myexceptions.net 网友分享于&#xff1a;2015-08-26 浏览&#xff1a;11次MYSQL 运行一小段时间后&#xff…

matlab axis 用法,MATLAB中regionprops的用法

Matlab图像处理函数&#xff1a;regionprops这里给出在Matlab图像处理工具箱中非常重要的一个图像分析函数&#xff1a;regionprops。顾名思义&#xff1a;它的用途是get the properties of region&#xff0c;即用来度量图像区域属性的函数。语法STATS regionprops(L,propert…

emqx配置mysql认证,emqx使用mysql完成用户密码验证和ACL鉴权

emqx使用mysql完成用户密码验证和ACL鉴权emqx使用mysql完成用户密码验证和ACL鉴权摘要&#xff1a;前几篇博客介绍的是使用配置文件配置了ACL和客户端用户名密码配置实现生产环境下的安全登录和权限控制&#xff0c;各项配置比较繁琐&#xff0c;修改起来比较麻烦&#xff0c;下…

MATLAB课程表分配问题,求助matlab大神,学校的课程安排太骚了,我们压根就不用学matlab...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼上了MATLAB&#xff0c;可是对数学完全不感兴趣。老师弄了个作业&#xff0c;代码附件了。求大佬帮忙理解原理后简单做一个不一样的过程的程序。帮忙注释一下代码。(一开始忘记下载要币了。不好意思)两个.m文件&#xff0c;需要放一…

php时间转分钟前,PHP把时间转换成几分钟前几小时前几天前

现在很多网站将时间的显示都变得比较人性化&#xff0c;今天项目有一个也需要在对应的资讯后面显示为几分钟前、几小时前&#xff0c;接下来吾爱编程为大家分享一下PHP把时间转换成几分钟前、几小时前几天前的方法&#xff0c;有需要的小伙伴可以参考一下&#xff1a;1、项目需…