随笔分类 - JAVA数据结构(DataStructure)
要努力、学好....
摘要:为什么使用树: 树结合了两种数据结构的有点:一种是有序数组,树在查找数据项的速度和在有序数组中查找一样快;另一种是链表,树在插入数据和删除数据项的速度和链表一样。既然这样,我就要好好去学了....(最主要讨论的是二叉树中的二叉搜索树,即一个节点的左子节点关键值小于这个节点,右子节点的关键值大于这个节点)设计前的思考:树——>元素(节点)class Node{ public int iData ; public float fData ; public Node left ; public Node right ; //方法 public Node(int iData,f...
阅读全文
摘要:对大数据进行排序时,冒泡排序、选择排序、奇偶排序、插入排序的效率不相同各种排序的代码:冒泡排序:View Code 1 public void bubbleSort()2 {3 int out, in;4 5 for(out=nElems-1; out>1; out--) // outer loop (backward)6 for(in=0; in<out; in++) // inner loop (forward)7 if( a[in] > a[in+1] ) // out of or...
阅读全文
摘要:归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并操作归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。归并排序算法依赖归并操作。算法描述归并操作的过程如下:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列设定两个指针,最初位置分别为两个已经排序序列的起始位置比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针达到序列尾将另一序列剩下的所有元素直接复制到合并序列尾 归
阅读全文
摘要:算法思路: 在数组中重复两趟扫描。第一趟扫描选择所有的数据项对,a[j]和 a[j+1], j 是奇数(j=1, 3, 5,…)。如果它们的关键字的值次序颠倒,就交换它们。第二趟扫描对所有的偶数数据项进行同样的操作(j=0, 2, 4, 6,…)。重复进行这样两趟的排序直到数组全部有序。注:奇偶排序实际上在多处理器环境中很有用,处理器可以分别同时处理每一个奇数对,然后又同时处理偶数对。因为奇数对是彼此独立的,每一对都可以用不同的处理器比较和交换。这样可以快速地排序。自己的理解:不断比较相邻两个数据(根据奇数对和偶数对来比较),进行一趟就能把大的那个数移动到下一位,小的那个数移动到前一位,奇偶数
阅读全文
摘要:一直用到测试的表:View Code 1 //表 2 public class Link 3 { 4 public int data ; 5 public Link next ; 6 7 //--------------------------------- 8 public Link(int data) 9 {10 this.data = data ;11 }12 //---------------------------------13 public void displayLink()14 ...
阅读全文
摘要:当原方法的实现和子方法相同,并且子方法进一步简化了原方法(执行步骤减少了,判断的次数减少了等),可以考虑使用递归处理问题1.使用递归实现斐波那契数列View Code 1 //使用递归实现斐波那契数列 2 import java.util.* ; 3 public class TestFibonacci 4 { 5 public static void main(String[] args) 6 { 7 Scanner input = new Scanner(System.in) ; 8 int count = 0 ; 9 int num...
阅读全文