算法和数据结构
Frozen_Wang
种一棵树最好的时间是十年前,其次是现在
展开
-
排序算法之简单插入算法
先记下来,后面再写 /*** 简单插入排序* @param a* @return*/public int[] insertSort(int a[]){for(int i=1;iint temp=a[i];int j=i;if(tempwhile(j>=1&&tempa[j]=a[j-1];j--;}a[j]=temp;}}re原创 2015-09-14 12:48:28 · 310 阅读 · 0 评论 -
两种方式实现数组中负数在左,正数在右
一、实现原理是:两个变量,一个用来记录当前的遍历点,一个用来记录最左边的负数在数组中的索引值。然后遍历整个数组,遇到负数将其与负数后面的数进行交换。遍历结束,即可实现负数在左,正数在右。此种实现原理和实现都较为简单。原创 2015-10-08 19:45:07 · 3040 阅读 · 0 评论 -
Java实现线性存储的二叉树
/** * 线性存储的二叉树 * * @author Administrator * */public class LinearBinaryTree { //用来存储数据的数组 private Object[] datas; //定义默认的树的深度 private int DEFAULT_DEEP=8; //保存树的深度 private int deep; privat原创 2015-09-17 21:01:01 · 488 阅读 · 0 评论 -
判断两棵二叉树是否相等
题目描述:给定两棵二叉树,写一个函数来检查他们是否相等。注:两棵二叉树相等的定义是:他们的结构相同,而且相应位置上节点的值也想等。class Node(){ int val; Node right; Node left; Node (int val){ this.val=val; }}public class Solution { public boolean i原创 2015-09-16 15:16:31 · 1496 阅读 · 0 评论 -
如何判断二叉树是否是结构性对称的?
判断二叉树是否是结构性对称的,其实思想是很简单的:通过分别相对应的位置的节点是否对称存在即可,即相应的位置上同时存在或者同时不存在都是对称的。否则不对称Java程序实现的代码如下: public boolean isSymmetrical(Node root){ if(root==null) return true; return isCheck(root.ri原创 2015-09-14 20:46:35 · 1224 阅读 · 0 评论 -
排序算法之选择排序
选择排序是一种比较直观也比较简单的排序算法。其原理是:用第i个元素和他后面的元素依次相比,将最小的放入i处,经过循环,可将小的依次选择出来。一下为源代码: /**选择排序算法* * @param a* @return*/public int[] selectSort(int a[]){int temp;for(int i=0;ifor(in原创 2015-09-14 09:05:23 · 397 阅读 · 0 评论 -
排序算法之快速排序
/** * 快速排序 * @param a * @return */ public void fastSort(int a[],int left,int right){ if(left>=right){ return ; } int criticalIndex=makeSorted(a, left,right); fastSort(a,left,critic原创 2015-09-14 16:23:09 · 416 阅读 · 0 评论 -
Java求解数组中的两个元素的最小距离
题目描述:给定一个数组,数组中含有重复的元素,给出两个数x和Y在数组中出现位置的最小距离。思路:每次遇到x或者y,记录当前值,并且距离计算开始,当下一次遇见两者中的一个进行比较,如果是前面遇到的,则距离计算清空,否则和记录的最小距离进行比较,存储较小值。时间复杂度O(n).代码如下:public class Test09 {/*** 得到数组之间的两个指原创 2015-09-12 16:52:56 · 2106 阅读 · 0 评论 -
排序算法之冒泡算法
public class TestSort{/*** * 冒泡算法1* 实现大的数字往后冒* @param a* @return*/public int[] bubbleSort_1(int a[]){int temp;for (int i=0;ifor(int j=1;jif(a[j]temp=a[j];a[j]=a[j-1];a[j原创 2015-09-13 23:54:57 · 401 阅读 · 0 评论 -
二分查找的实现
import java.util.*;/** * 二分查找 * 如果有重复的数字则返回该数字在数组中出现的第一次位置 * @author Administrator * */public class BinarySearch { public int getPos(int[] A, int n, int val) { // write code here原创 2015-09-20 18:53:13 · 511 阅读 · 0 评论