- 博客(16)
- 收藏
- 关注
原创 链表
链表和数组都是应用广泛的通用存储结构 数组:无序数组搜索效率低,有序数组插入效率低,数组创建后大小不可改变 链表:在表头插入删除O(1),平均插入、删除O(N)(与数组相比不需要移动元素),链表大小可扩展 一般链表 package datastructure.c5.linklist.def; public class Link { public int iData; public d
2017-04-10 12:28:14 281
原创 优先级队列
插入过程:外层循环当前所有元素,从最后一个到第一个,要插入的元素与当前循环元素比较,当前元素向后移位或退出循环 package datastructure.c4.queue.priority; public class PriorityQ { private int maxSize; private long[] queArray; private int nItems; public
2017-04-09 10:22:25 222
原创 基于数组的循环队列和基于链表的队列
数据的插入和取出涉及对当前数据量nItems属性的修改,大量的插入、移除操作时,对nItems属性的操作可能影响性能,可参考不包含数据项个数属性的队列实现。 包含数据项个数属性的队列 package datastructure.c4.queue.queuedef; public class Queue { private int maxSize; private long[] queAr
2017-04-08 00:20:42 343 5
原创 栈(基于数组和链表)
栈是一个概念上的辅助工具,提供限定性的访问方法,使程序易读且不易出错。时间复杂度为O(1)。 栈的数组实现 package datastructure.c4.stack.stackdef; public class StackX { private int maxSize; private long[] stackArray; private int top; public Stac
2017-04-08 00:05:12 321
原创 插入排序
插入排序: 元素个数:n 外层循环:1 内层循环:x 过程:外层从第二个元素开始,到最后一个;0到out-1的元素已有序,内层循环从out位置向前找,将out位置元素插入到合适位置x,须将x到out-1之间的元素后移一个位置。 package datastructure.c3.sort.insertsort; public class ArrayIns { private long[
2017-04-07 13:27:46 259
原创 选择排序
选择排序: 元素个数:n 外层循环:0 内层循环:out+1 过程:将out后面的所有元素与当前out元素值比较,保证out位置的元素是从out到最后的这些元素中最小的。 package datastructure.c3.sort.selectsort; public class ArraySel { private long[] a; private int nElems; p
2017-04-07 12:44:55 190
原创 冒泡排序
冒泡排序算法简单,易理解,效率低 package datastructure.c3.sort.bubblesort; public class ArrayBub { private long[] a; private int nElems; public ArrayBub(int max){ a=new long[max]; nElems=0; } public void i
2017-04-07 11:48:22 226
原创 数组算法时间复杂度
一些算法的时间复杂度 算法 时间复杂度 线性查找 O(N) 二分查找 O(logN) 无序数组的插入 O(1) 有序数组的插入 O(N) 无序数组的删除 O(N) 有序数组的删除 O(N)
2017-04-06 20:57:54 5998
原创 有序数组
有序数组使用二分查找算法,查找速度比无序数组快,插入数据比无序数组慢,删除数据有序及无序数组都较慢。 package datastructure.c1.array.ordarray; public class OrdArray { private long[] a; private int nElems; public OrdArray(int max){ a=new long[
2017-04-06 20:47:03 838
原创 文件读取、复制
package io1; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;
2016-04-11 08:57:38 381
原创 RandomAccessFile文件读写操作
package practice.file01; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Arrays; /** * (1)java文件模型 * 在硬盘上的文件是byte byte byte存储的,是数据的集合 * (2)打开文件
2016-04-11 00:19:16 619
原创 遍历目录方法
package practice.file01; import java.io.File; import java.io.IOException; //列出File的一些常用操作,比如过滤,遍历等操作 public class FileUtils { /** * 列出指定目录(包括其子目录)下的所有文件 * @param dir * @throws IOExceptio
2016-04-10 18:51:01 297
原创 File类常用API学习
package practice.file01; import java.io.File; import java.io.IOException; public class FileDemo { //java.io.File类用于表示文件(目录),不能用于文件内容的访问 public static void main(String[] args) throws IOException {
2016-04-10 18:12:35 3593
原创 编码学习
package practice.encode; import java.io.UnsupportedEncodingException; public class EncodeDemo { public static void main(String[] args) throws UnsupportedEncodingException { String s="心情ABC"; b
2016-04-10 14:53:20 327
原创 int、long、String类型数据与字节数组转换
package practice.converttobytes; public class ConvertToBytes { //int型转换为byte[] public static byte[] int2Bytes(int a){ byte[] arr=new byte[4]; for(int i=0;i<arr.length;i++){ arr[i]=(byte)((in
2016-04-10 12:11:33 573
原创 简单进制转换
package practice.conversion; public class ConversionExercise { public static void main(String[] args) { //十进制转换为其他进制 System.out.println(Integer.toBinaryString(258));//转换为二进制 System.out.
2016-04-09 23:24:26 335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人