Java->数据结构和算法
Carrie_zzz
自由,快乐
https://shop222559160.taobao.com/
我的淘宝店铺
http://39.108.70.189/?/admin/user/list/
产品经理社区
http://www.cnblogs.com/WUPEIQI--python博客
展开
-
数据结构----->二叉树
(1)数据结构----二叉树 具有数组和链表各自的特点: 1>像数组一样快速的查找 2>像链表一样快速添加 3>删除操作复杂二叉树:每个节点最多有两个字数的有序树,在使用二叉树的时候,数据并不是随便插到节点中的,一个节点的左字节点的关键值必须小于此节点,右子节点的关键值必须大于或者等于此节点,所以称二叉查找树,二叉排序树,二叉搜原创 2017-04-17 21:50:56 · 482 阅读 · 0 评论 -
算法-->反序(插入)
package 插入排序;/*** * 反序 * * @author 朱珍珍 * */ public class Fanxu { static final int SIZE = 10; static void insertSort(int[] a, int len) { int i, j, t, h; for (i = 1; i < len;原创 2017-07-21 20:59:44 · 436 阅读 · 0 评论 -
算法-->字符串数组(快 排)
package 快速排序算法;public class ZiFuChuan { static final int N = 5; static void quick(String[] arr, int left, int right) { String f, t; int rtemp, ltemp; ltemp = left;原创 2017-07-21 21:40:23 · 504 阅读 · 0 评论 -
算法-->随机值
package 随机数;import java.util.Random;/** * 这是一个典型的产生随机数的算法 * * @author 朱珍珍 * */ public class A { public static void main(String[] args) { A a = new A(); int i, j;// 申明变量原创 2017-07-31 17:21:42 · 348 阅读 · 0 评论 -
算法-->顺序查找
package 顺序查找;import java.util.Scanner;public class ShunXu { static final int N = 15; static int searchFun(int a[], int n, int x) { int i, f = -1; for (i = 0; i < n; i++) {原创 2017-07-22 22:50:30 · 429 阅读 · 0 评论 -
算法-->折半查找(快排)
package 折半查找;import java.util.Scanner;public class ZheBan { static final int N = 15; static void quick(int[] arr, int left, int right) { int f, t; int rtemp, ltemp; ltemp原创 2017-07-23 11:00:35 · 471 阅读 · 0 评论 -
算法-->堆排序
感觉写的不是很好,自己的思绪还是有点乱。package 堆排序;public class DuiPai { static final int SIZE = 10; static void heapSort(int a[], int n) { int i, j, h, k; int t; // 将a[0,n-1]建立成为一个大根堆原创 2017-07-20 08:04:49 · 375 阅读 · 0 评论 -
算法-->合并排序
package 合并排序;public class HeBing { static final int SIZE = 15; static void mergeOne(int a[], int b[], int n, int len) { int i, j, k, s, e; s = 0; // 第一次合并,每段len个原创 2017-07-20 09:03:53 · 339 阅读 · 0 评论 -
算法-->复数运算
package 复数运算;/** * a,b分别是一个数的实部和虚部 b,c同上 * * @author 朱珍珍 * */ public class FuShu { // 加法 static void Add(double a, double b, double c, double d, double e[], double f[]) { e[0] = a原创 2017-08-01 18:56:24 · 702 阅读 · 0 评论 -
算法-->线性表查找
package 顺序表中的查找算法;import java.util.Scanner;public class Shuxuchazhao { public static void main(String[] args) { int i; shType s = new shType();// 定义顺序表的变量 Date pdate;// 定义节点原创 2017-07-24 13:56:11 · 399 阅读 · 0 评论 -
算法-->阶乘
package 阶乘;import java.util.Scanner;/** * (fact):使用循环来计算阶乘 (fact2):使用递归计算阶乘 * * @author 朱珍珍 * */ public class xunhuan { static long fact(int n) { int i; long result = 1;原创 2017-08-02 13:21:17 · 388 阅读 · 0 评论 -
算法-->查找 (链表)
package 链表中的查找算法;import java.util.Scanner;public class LinkFind { public static void main(String[] args) { Type node, head = null; String key; Scanner sc = new Scanner(System原创 2017-07-25 08:43:26 · 827 阅读 · 0 评论 -
算法-->级数
package 计算π近似值;import java.util.Scanner;/** * 割圆术:得到足够多的接近圆的多边形 * * @author 朱珍珍 * */ public class geyuan { static void cyc(int n) { int i, s; double k, len; i = 0;原创 2017-08-03 14:39:44 · 545 阅读 · 0 评论 -
算法-->判断 闰年
润年是一个 比较简单又经典的问题。什么是 润年呢?润年就是阳历或者阴历中有闰日的年,或阴阳历中有闰月的年。润年就 是历法上的一个 折中主要是为了弥补因为人为制定的立法而造成的年度天数与地球时机公转周期的时间差而设置的。也就是说补上使劲按差的年份就是润年package 判断润年;public class RunNian { static int LeapYear(int year) {原创 2017-07-26 19:49:27 · 1339 阅读 · 0 评论 -
算法-->快速排序
快速排序算法是通过多次比较和交换来实排序的 首先设定一个分界值,通过该分界值将数组分成左右两个部分 将大于等于分界值的数据集中到数组的右边,小于分界值的集中到左边,此时,左边部分中各个元素都小于分界值,右边的数据各个大于分界值 然后,左边和 右边的数据可以独立排序,对于左慈的数据数组,又可以取出一个分界值,将该部分分成左右两个部分, 重复上述的过程,可以看出是一个递归定义,通过递归将左侧排序好,再递原创 2017-07-18 08:54:55 · 295 阅读 · 0 评论 -
数据结构-->二叉树
package 树结构;import java.util.Scanner;public class TreeType {static final int MAXLEN = 20; static Scanner sc = new Scanner(System.in);/* 初始化二叉树的根 */ SB init() { SB node; if ((node = new SB()) !=原创 2017-07-08 19:56:17 · 225 阅读 · 0 评论 -
数据结构-->图
package 图;import java.util.Scanner;public class GraphType { static Scanner sc=new Scanner(System.in);static void CreateGraph(Graph g) { //创建邻接矩阵图 int i,j,k; int weight;//权 char Es原创 2017-07-11 14:36:09 · 260 阅读 · 0 评论 -
算法-->穷举算法
package 穷举算法;import java.util.Scanner;public class QiongJu { static int chicken,habbit;//分别代表鸡的个数,兔子的个数 /*穷举算法*/ public static int qiongju(int head,int foot) { int r,i,j; r=0; for(i=0原创 2017-07-11 15:16:58 · 444 阅读 · 0 评论 -
算法-->递归
package 递归算法;import java.util.Scanner;public class digui { static long fact(int n) { if(n<=1) { return 1; }else { return n*fact(n-1); } }原创 2017-07-11 15:38:18 · 260 阅读 · 0 评论 -
算法-->分治
package 分治算法; import java.util.Scanner; public class fenzhi { static final int MAXNUM=4; static int falsecoin(int coin[],int low,int hight) { int i,num1,num2,num3; int re=0; num1=num2=num3=0原创 2017-07-12 18:54:07 · 299 阅读 · 0 评论 -
算法-->概率
概率算法执行的基本过程如下: 将问题转化为相应的几何图形S,S的面积很容易计算,问题的结果往往对应几何图形中某一部分S1的面积。 然后向2几何图形中随机撒点 统计几何图形S和 S1中的点数。根据S和S1面积之间的关系和图形中的点数来计算得到结果 判断上述结果是否在需要的精度之内,如果未达到精度就执行步骤(2)如果达到结果就输出近似结果 概率算法的4种形式 (1)数值概率算法 (2)蒙特卡罗(Mont原创 2017-07-13 09:09:11 · 400 阅读 · 0 评论 -
数据结构-->线性表
package 线性表;import java.util.Scanner;class DATA { /* 定义节点 */ String key;// 关键字 String name; int age;} public class Linelist {/* 定义顺序表的结构 */ static final int MAXINT = 100;// 顺序表的最大长原创 2017-07-04 20:40:45 · 377 阅读 · 0 评论 -
算法-->冒泡 排序
package 冒泡排序;public class MaoPao { static final int SIZE=10; public static void bubbleSort(int[]a) { int temp; for(int i=1;i<a.length;i++) { for(int j=0;j<a.length-i;j++) {原创 2017-07-14 08:33:16 · 275 阅读 · 0 评论 -
数据结构--->链表
class DATA { String key;// 节点的关键字 String name; int age; }/* *(1)首先分配内存空间 * (2)从头引用head开始逐个检查 * (3)将表尾节点的地址部分设置为新增节点的位置 * (4)将新增节点的地址部分设置为null地址,及新增节点成为尾节点 */ class LinkType原创 2017-07-05 21:51:18 · 226 阅读 · 0 评论 -
算法-->选择排序
package 选择排序;public class XuanZe { static final int SIZE=10; public static void selected(int []a) { int index; int temp; for(int i=0;i<a.length;i++) { index=i; for(int j=i+1原创 2017-07-15 08:38:53 · 259 阅读 · 0 评论 -
数据结构-->栈
@Carrie_zzz 坚持每天写一个,请多多支持嘿嘿,请多多指教,共同进步!!! package 栈;import java.util.Scanner;public class StackType { static final int MAXLEN = 50; DATA[] datastack = new DATA[MAXLEN + 1];// 数据元素 int原创 2017-07-06 10:59:37 · 249 阅读 · 0 评论 -
数据结构-->队列
package 队列;import java.util.Scanner;public class QueueType { static final int QUEUELEN=15; DATA [] Queuedata=new DATA[QUEUELEN];//队列数组 int head;//队头 int tail;//队尾 /*队列初始化 * (1)按符原创 2017-07-07 11:19:58 · 256 阅读 · 0 评论 -
算法-->插入排序
插入排序是通过比较 和插入来实现排序 首先对数组的前两个数据进行从小到大的排序 接着将第三个数据与排好的两个数进行比较,将第三个数据插入到合适的位置 然后,将第四个数据插入已经排好序的前三个数据中 不断从重复上述 的过程,知道最后把最后一个数据插入到合适的位置,最后就完成了对原始数组从小到大的排序。 package 插入排序;public class Charu { static final in原创 2017-07-16 20:45:55 · 310 阅读 · 0 评论 -
算法-->shell排序
shell排序算法严格来说是基于插入排序的思想,又称为希尔排序,或缩小增量排序: 将 又n个元素的数组分成n/2个数字序列,第一个数据 和n/2+1个数据为一对 每一次循环使每一个序列排顺序 不然,再变成n/4个序列,再次排序 不断重复上述过程,随着 序列的减少最后变成一个,就完成了整个排序 package shell排序;public class Shell { static final原创 2017-07-17 09:01:23 · 328 阅读 · 0 评论 -
算法-->1,2维多项式
package 多项式计算;import java.text.DecimalFormat;public class YiWei { static double yiwei(double a[], int n, double x) { int i; double result; result = a[n - 1]; for (i原创 2017-07-29 15:54:37 · 412 阅读 · 0 评论 -
算法-->矩阵运算
package 矩阵运算;/** * 矩阵的加法,减法,乘法 * * @author 朱珍珍 * */ public class juzheng { static void Add(double A[][], double B[][], int m, int n, double C[][]) { // A,B参与的矩阵,m,n列数C为相加后的 结果原创 2017-08-04 14:34:10 · 428 阅读 · 0 评论