数据结构与算法
PostTruth
书写是对思维的缓存
展开
-
冒泡排序
public class Test { //待排数组 private static int[] data = {1, 10, 11, 23, 4, 2, 18, 47, 95, 23}; //增强for循环打印数组 private static void print(int[] da原创 2015-11-19 17:09:48 · 312 阅读 · 0 评论 -
ACM迷宫问题java描述
package acm;//* @author: /** * 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路原创 2015-12-11 20:07:17 · 1262 阅读 · 0 评论 -
进制转换
一、 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为转载 2015-12-12 14:41:37 · 489 阅读 · 0 评论 -
跪求求高效排序算法???
**跪求求高效排序算法???**问题描述给出n个数,找出这n个数的最大值,最小值,和。输入格式第一行为整数n,表示数的个数。第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。输出格式输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。样例输入51 3 -2 4 5样例输出5-211数据规模与约定1 <= n <=原创 2015-12-12 23:30:45 · 563 阅读 · 0 评论 -
排序算法——快速排序
今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。**在java.util包下的Arrays.sort()方法,用的就是快速 排序算法**思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,原创 2015-12-14 21:29:20 · 398 阅读 · 0 评论 -
动态连通性之union-find算法步步优化
设计和分析算法,主要强调以下几点:优秀的算法因为能够解决实际问题而变得更为重要;高效算法的代码也可以很简单;理解某个实现的性能特点是一项有趣而令人满足的挑战;在解决同一个问题在多种算法之间进行选择时,科学方法是一种重要的工具;迭代式改进能够让算法的而执行那个效率越来越高.我们会不断巩固这些思想,本节的例子只一个原型.它将为我们用相同的方法解决许多其他问题打下基础.动态连通性什么是动态连通原创 2016-11-01 23:08:57 · 971 阅读 · 0 评论 -
算法基础-基本数据类型
基础抽象数据类型许多基础数据类型都和对的集合有关,具体来说,数据类型的值就是一组对象的集合,所有操作都是关于 添加 删除 或是访问集合中的对象.在本文中我们将学习三种这样的数据类型,这也是后面学习更加更加复杂数据类型的基础. 1,栈 2,队列 3,背包概述在本章中,我们所学习的支持泛型和迭代的栈,队列 和背包的实现所提供的抽象是我们能够编写简洁的用例程序来操作对象的集合.深原创 2016-11-01 23:11:29 · 1151 阅读 · 0 评论