
编程
野马16
欢迎留言,邮箱horacehe15@163.com
展开
-
开篇
在我看来,作为一个计算机系的学生,保持活力,发现和学习新知识新技能特别重要。与时俱进,跟紧时代步伐,特别重要。千里之行,始于足下,先从更新软件开始。原创 2016-12-24 10:01:39 · 221 阅读 · 0 评论 -
java实现各种排序算法及比较
常见排序算法包括以下七种:选择排序、冒泡排序、插入排序、快速排序、希尔排序、堆排序、归并排序。在学习具体算法实现并进行比较前,先来学习算法比较的几个维度。各排序算法比较如下图一是稳定性所谓稳定性,是指值相等的两个元素在排序前后是否会发生位置的交换。如果不会发生交换,则认为是稳定的算法;反之,则认为是不稳定的排序算法。二是时间复杂度,指执行算法所需的时间长短。简单说就是算法...转载 2018-07-13 20:54:28 · 1177 阅读 · 0 评论 -
希尔排序详解
目录要点 算法分析 希尔排序的算法性能 时间复杂度 算法稳定性 直接插入排序和希尔排序的比较 完整参考代码 JAVA版本 参考资料 相关阅读要点希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。该方法因DL.Shell于1959年提出而得名。希尔排序的基本思想是:把...转载 2018-07-25 15:19:11 · 2906 阅读 · 0 评论 -
Java高并发编程学习笔记1
线程的Runnable状态已经具备执行条件,只等待CPU调度(万事俱备只欠东风)。 1、Thread类中得start方法启动一个线程,并且该线程进入了可执行态(Runnabel) 2、run方法和start方法的区别。 3、线程真正的执行逻辑在run方法中,通常我们把run方法称为线程的执行单元。重写run方法,用start方法启动线程。 ...原创 2018-07-25 16:28:25 · 188 阅读 · 0 评论 -
平衡二叉树
平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个递归...转载 2018-07-25 16:31:24 · 215 阅读 · 0 评论 -
理解希尔排序的排序过程2
1,有关插入排序(1)插入排序的基本方法是:每步将一个待排序的元素,按其排序码大小插入到前面已经排好序的一组元素的适当位置上去,直到元素全部插入为止。(2)可以选择不同的方法在已经排好序的有序数据表中寻找插入位置,依据查找方法的不同,有多种插入排序方法。下面是常用的三种。1>直接插入排序2>折半插入排序3>希尔排序(3)直接插入排序基本思想:当插入第i(i...转载 2018-07-26 09:55:20 · 2003 阅读 · 0 评论 -
AVL 平衡二叉树旋转方法
1、预备知识定义树(tree)的一种自然的方式是递归的方式。一棵树使一些节点的集合。这个集合可以是空集;若不是空集,则树由称作根(root)的节点 r 以及 0 个或多个非空的(子)树 T1,T2,T3,…,Tk 组成。这些子树每一颗的根都被来自根 r 的一条有向的边所连结。每一颗子树的根叫做根 r 的儿子(child),而根 r 是每一颗子树的根的父亲(parent)。没有儿子的根叫做树...转载 2018-08-02 11:24:11 · 269 阅读 · 0 评论 -
(good)AVL树的旋转
通常,我们在平衡二叉树进行插入和删除的时候常常会破坏平衡二叉树,所以我们必须通过一种方法来再次平衡二叉树使之成为平衡二叉树,这种办法就是旋转。旋转可以分为四种,分别为:1.左单旋转2.右单旋转3.先左后右双向旋转4.先右后左双向旋转接下来我们去分析这四种旋转并且依次用代码实现1.左单旋转旋转过程: 在原有的平衡树中插入20这个节点,导致不平衡,通过旋转...转载 2018-08-02 19:58:55 · 261 阅读 · 0 评论 -
【软件配置管理工具】在PyCharm或IDEA中使用Gitee
在PyCharm或IDEA中使用Gitee进行代码配置管理一、什么是软件配置管理工具软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报...原创 2018-09-27 21:16:41 · 2923 阅读 · 5 评论 -
各种排序算法的Java实现
插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/** * @author treeroot * @since 2006-2-2 * @version 1.0 */public class InsertSort implements SortUtil.Sort{ /* (no...转载 2018-07-13 20:49:51 · 132 阅读 · 0 评论 -
堆排序的核心思想与Java实战
实战代码,可以直接将其粘贴到开发环境中运行import java.util.Arrays;public class MyHeapSort { /** * 堆排序<br/> * 不稳定排序,时间复杂度O(nlogn) * @param a * @return */ public static void he...原创 2018-07-24 21:02:13 · 556 阅读 · 0 评论 -
图解排序算法之堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,...转载 2018-07-23 21:14:33 · 153 阅读 · 0 评论 -
浅谈JavaEE三层架构及与mvc的区别
浅谈JavaEE三层架构及与mvc的区别原创 2017-10-24 09:24:20 · 1694 阅读 · 0 评论 -
对象的上转型对象
假设,B是A的子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到类A声明的对象中时,如 A a; B b=new B(); a=b; 那么,就称对象a是子类对象b的上转型对象. 上转型对象不能操作子类声明定义的成员变量(失掉了这部分属性),不能使用子类声明定义的方法(失掉了一些功能)。 ◆上转型对象可以代替子类对象去调用子类重写的实例方法。如果子类重转载 2017-11-13 09:01:37 · 1238 阅读 · 0 评论 -
希尔排序
请参考http://blog.youkuaiyun.com/lcb1992/article/details/69788850原创 2017-11-03 12:00:29 · 176 阅读 · 0 评论 -
Object类的方法
Object类的方法前言Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。object类的结构 如图可知,Object类有12个成员方法,按照用途可以分为以下几种 1、构造函数 2、hashCode和equale函数用来判断对象是否相同, 3、wait(),wait(long),wait(long,int)转载 2017-11-14 16:24:39 · 210 阅读 · 0 评论 -
eclipse 中的注释 快捷键
(1)Ctrl+Space 说明:内容助理。提供对方法,变量,参数,javadoc等得提示, 应运在多种场合,总之需要提示的时候可先按此快捷键。 注:避免输入法的切换设置与此设置冲突 (2)Ctrl+Shift+Space 说明:变量提示 (3)Ctrl+/ 说明:添加/消除//注释,在eclipse2.0中,消除注释为Ctrl+\ (4)Ctrl+Shift+/ 说明:转载 2017-11-15 09:30:04 · 223 阅读 · 0 评论 -
用动态规划解01背包(java版)
解题思路的大致步骤: 1、输入信息 2、初始化dp 3、在dp矩阵中计算最优值 4、利用最优值构造最优解 5、输出信息建议大家可以把下面的代码直接复制并粘贴到编译器就可以运行了。下面代码的测试用例 import java.util.Scanner;/** * * @author he * */public class Knapsack01 { int numOfObj原创 2017-12-09 11:39:05 · 430 阅读 · 1 评论 -
Python中小数点精度的控制
Python中小数点的精度计算,round()内置方法,格式化转载 2017-12-10 13:36:02 · 3543 阅读 · 0 评论 -
【校招】快速排序题解
快速排序是程序员入职笔试常考的题目:快排的核心思想就是:经过一趟交换排序,使得比基准小的数都在其左侧,比基准大的数都在其右侧。【例题|唯品会】一组记录的关键值为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录的关键值46为基准得到的一次划分结果为()。原式:46,79,56,38,40,84 1、基于原式,以46作为基准46 79 56 38 40 84 ...原创 2018-03-08 15:49:10 · 4118 阅读 · 0 评论 -
STS(spring tool suite)修改默认编码
安装STS后首先要做的修改默认编码:1、windows--perferences--general--workspace,Text file encoding设置成utf-82、windows--perferences--general--content types,把里面text的default encoding utf-83、windows--perferences--web--j...转载 2019-10-09 08:42:58 · 972 阅读 · 0 评论