
java数据结构和算法
木木木是我
这个作者很懒,什么都没留下…
展开
-
数据结构之冒泡排序 java
冒泡排序算法分析: 设待排序记录序列中的记录个数为n 一般地,第i趟起泡排序从1到n-i+1 依次比较相邻两个记录的关键字,如果发生逆序,则交换之。算法分析: 时间复杂度: ◎最好情况(正序) 比较次数:n-1 (有优化时) 移动次数:0 ◎最坏情况(逆序) 比较次数: 移动次数: 代码如下:import org.junit.Tes原创 2018-03-14 23:08:34 · 492 阅读 · 0 评论 -
acm P1016 Prime Ring Problem(DFS深搜)
Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 60130 Accepted Submission(s): 25984Problem DescriptionA ring is compose of ...原创 2018-03-22 23:21:19 · 148 阅读 · 0 评论 -
acm P1285确定比赛名次(拓扑排序)
确定比赛名次Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32192 Accepted Submission(s): 12619Problem Description有N个比赛队(1<=N<=500),编号依次为1,2,...原创 2018-03-25 15:38:54 · 240 阅读 · 0 评论 -
拓扑排序
原创 2018-03-25 14:26:42 · 128 阅读 · 0 评论 -
循环队列(BFS所用到队列优化成循环队列。)
public class CircleQueue { private final int Max_Size=8;//队列的最大容量 private int front;// 队首位置 private int end;// 队尾位置 private Plot plot[]; public CircleQueue(){ front=0; end=0; plot=new Plot[...原创 2018-03-25 12:09:07 · 471 阅读 · 1 评论 -
数据结构搜索算法之广度优先搜索 (BFS)
BFS思路(伪代码):BFS(G,s){ //初始化图(标记):颜色、父节点、距离 for(each vertex u∈V[G]-s){ color[u]=WHITE; parent[u]=null; d[u]=∞; } //初始化源节点s color=GRAY;parent[s]=null;d[s]=0;Que=φ; enqueue(Que,s);//把s加到队尾for(eac...原创 2018-03-24 20:06:51 · 502 阅读 · 0 评论 -
倒油问题(深搜DFS)
有一位厨师要从盛12斤油(a桶)的桶中倒出6斤油来,可是手边只有盛8斤油(b桶)和盛5斤油(c桶)的两个桶,问如何操作才能将6斤取出来呢? 一拿到这道题的时候,初想没有什么思路,后来知道广搜和深搜都可以,并且用面向对象方法的时候,特别要注意引用赋值的捆绑,以及拷贝构造(这里要非常注意需要防止捆绑),这个坑非常容易跳,一不注意就进坑了。下面提供DFS的两种面向对象方法,代码如下: p...原创 2018-03-29 20:46:50 · 1080 阅读 · 0 评论 -
数据结构之排序算法 快速排序 java
import org.junit.Test;//////////////5快速排序--快排////////////////public class QuickSort { @Test public void TestPartiton(){ int a[] = new int[]{25,3,21,0,25,49,25,16,8,23,45,-3,4}; Partition(a...原创 2018-03-19 13:03:38 · 178 阅读 · 0 评论 -
数据结构之搜索算法 深度优先搜索(DFS)java
伪代码(DFS思路): DFS(G){ //初始化图 for(each vertex u∈v[G]){ color[u]=WHITE; parent[u[=null; } time=0;//计算时间的全局变量for(each vertex u∈v[G]){//搜森林 if(color==WHITE){//搜一棵树,一次...原创 2018-03-22 20:24:48 · 489 阅读 · 0 评论 -
数据结构之排序算法 对象数据排序2
import java.util.Arrays;/* 演示用Arrays.sort()来排序 */public class sortObjectDemo2 { public static void main(String[] args) { DataOBject2 objs[] = new DataOBject2[6]; objs[0] = new DataOBject2(...原创 2018-03-18 23:41:22 · 188 阅读 · 0 评论 -
数据结构之排序算法 对象数据排序1
/* * 对象数据排序要点: * 1)用关键字进行比较,决定先后顺序 * 2)元素交换时,用对象引用进行交换 */public class sortObjectDemo { public static void main(String[] args) { DataOBject objs[] = new DataOBject[6]; objs[0] = new DataOBje...原创 2018-03-18 23:42:43 · 218 阅读 · 0 评论 -
数据结构之排序算法归并排序 java
代码如下:///////////////6归并排序/////////////// public void merge(int a[],int []b,int left,int mid,int right){ //归并方法: 把两个有序子序列合并成一个有序序列 //划分两个子序列,分别为a[left:mid]及 a[mid+1:right],归并到b数组b[left:right] ...原创 2018-03-18 23:10:29 · 160 阅读 · 0 评论 -
数据结构之排序算法希尔排序 java
代码如下:@Test public void shellSort(){ int []a={22,15,32,14,11,10,5,-33,-2,1000,1222,1235}; long t1=System.currentTimeMillis(); for(int gap=(a.length+1)/2;;){//分组 for(int i=0;i<a.len...原创 2018-03-18 20:31:29 · 165 阅读 · 0 评论 -
数据结构之 二分查找及用二分优化的插入排序 java
public class binaryfind {//折半查找 时间复杂度(O(log n)) public static void binary(int a[],int n,int key){ int low=1,high=n,mid; while(low<=high){ mid=(low+high)/2; //mid=low+(high-low)*(key-a[l...原创 2018-03-15 17:29:43 · 404 阅读 · 0 评论 -
数据结构之排序算法 直接插入排序java
代码如下:public class insertSort { public void print(int a[]){ for(int x: a){ System.out.print(x+" "); } System.out.println(); } public void insertsort(int a[]){ for(int i=0;i<a.length-1;...原创 2018-03-15 16:47:21 · 260 阅读 · 0 评论 -
数据结构排序算法之选择排序
选择排序算法分析:首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数交换——第一趟选择排序,结果最小的数被安置在第一个元素位置上。再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换——第二趟选择排序。重复上述过程,共经过n-1趟排序后,排序结束。import org.junit.Test;public class...原创 2018-03-14 23:26:41 · 461 阅读 · 0 评论 -
java 集合 TreeMap中文排序
package cn.hncu.col.sort.v4;import java.util.Iterator;import java.util.Map.Entry;import java.util.Set;import java.util.TreeMap;import cn.hncu.col.sort.V3.Person;public class SortDemo4 { /* ...原创 2018-04-05 10:29:38 · 1173 阅读 · 3 评论