
Java实现的基本算法
文章平均质量分 91
因chui斯汀_
这个作者很懒,什么都没留下…
展开
-
栈的两种实现方式:数组和链表
栈的实现与应用这里介绍两个基本数据类型实现的栈:数组与链表1.首先我们介绍基于数组来实现栈的过程(直接看代码即可,里面都有详尽的注释)为了秉承抽象特性,这里将接口操作与接口的实现方法进行分离a.接口StackADTpackage xidian.sl.stack;public interface StackADT { /*往栈顶添加一个元素*/ p原创 2015-09-09 13:43:54 · 2846 阅读 · 0 评论 -
Java实现链表结构
按链表的组织形式分有ArrayList和LinkList两种。ArrayList内部其实是用数组的形式实现链表,比较适合链表大小确定或较少对链表进行增删操作的情况,同时对每个链表节点的访问时间都是constant;而LinkList内部以一个List实现链表,比较适合需要频繁对链表进行操作的情况,对链表节点的访问时间与链表长度有关O(N)。 另外,根据实现形式可以分为直接式(想不出什么合原创 2015-09-09 15:18:05 · 913 阅读 · 0 评论 -
递归之经典:汉诺塔
递归之经典:汉诺塔public class hanoitower {public static void main(String[] args) {dototower(5, 'A', 'B', 'C');}public static void dototower(int N,char from, char inner, char to){if(N == 1){原创 2015-09-09 21:00:59 · 287 阅读 · 0 评论 -
直接选择排序
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1. 初始时,数组全为无序区为a[0..n-1]。令i=02. 在无序区a[i…n-1]中选取一个最小的元素,将其原创 2015-09-09 13:07:59 · 269 阅读 · 0 评论 -
冒泡排序
冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。 按照定义很容易写出代码:[cpp]原创 2015-09-09 13:12:51 · 272 阅读 · 0 评论 -
队列的两种实现:数组和链表
队列的定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。(1)允许删除的一端称为队头(Front)。(2)允许插入的一端称为队尾(Rear)。(3)当队列中没有元素时称为空队列。(4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 队列的修改是依先进先出的原则进行的。新来原创 2015-09-09 14:07:51 · 661 阅读 · 0 评论 -
直接插入排序的三种实现
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12. 将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。原创 2015-09-09 13:06:23 · 427 阅读 · 0 评论