数据结构与算法
WiseWolf_Life
这个作者很懒,什么都没留下…
展开
-
算法学习-插入排序
一、插入排序对于少量的排序,它是一个有效的算法,插入排序的工作方式,就像我们打扑克的时候拿牌的过程,把新加入的牌插入到合适的位置,手中的牌总是排序好的。排序稳定性:如果在待排序的记录序列中有多个数据元素的关键字值相同,经过排序后,这些数据元素的相对次序保持不变,则称这种排序算法是稳定的,否则称之为不稳定的。伪代码:INSERTION-SORT(A)//for j=2 to原创 2015-01-29 12:49:15 · 546 阅读 · 0 评论 -
算法学习-归并排序
一、归并排序学习归并排序用到了“分治法”这种设计方法。分治法步骤1、分解,原问题分解为若干子问题2、递归解决3、合并 归并排序的步骤:1、分解,待排序的n个元素的序列各分为n/2个元素的子序列2、解决,使用归并排序递归地排序两个子序列3、合并,合并两个已经排序的子序列以产生排序的答案 伪代码://MERGE-SORT(A,p,r)对数组A[p原创 2015-01-29 13:05:10 · 533 阅读 · 0 评论 -
java实现二叉树及遍历操作
import java.util.Scanner;public class BinaryTree { private static Node root=null; private class Node{ Node left; Node right; int value; public Node(int value){ this.value=value; lef原创 2015-02-06 11:37:03 · 567 阅读 · 0 评论 -
java求最小公倍数和最大公约数
public class T7 { public static void main(String[] args) { System.out.println(minGongBei(3, 4)); System.out.println(maxGongYue(50, 25)); } //求最大公约数 public static int maxGongYue(int m,int n){原创 2015-03-03 16:09:04 · 787 阅读 · 0 评论 -
常见数据结构总结
一、线性结构线性表 1.线性表的顺序表示,如:数组 2.线性表的链式表示 - 单向链表 - 双向链表 - 循环链表栈和队列 栈和队列也是线性表,但是是属于操作受限的线性表1.单向链表举例public class Node { Node next =null; int data; public Node(int d){ dat原创 2015-03-13 00:31:57 · 600 阅读 · 0 评论 -
最短路径算法比较(Dijkstra、Bellman-Ford、SPFA)及实现(Java)
单源最短路径算法使用场景时间复杂度原理异同伪代码Dijkstra从单源出发,到所有结点的最短路,适用于有向图、无向图(不能有负权环,且不能有非负权值的边)O(V^2),如果使用优先队列,则可以将复杂度将为O(|E|+|V|*|lg|V|),时间要低于Bellman-Ford算原创 2015-04-06 11:09:34 · 1881 阅读 · 0 评论