自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 归并排序(Java)

归并排序采用分治思想,现将大问题分解成若干个小问题进行递归求解,再将每个小问题的结果合并起来求解大的问题,分而治之第每一部分的排序复杂度为O(N),深度为logN,所以归并排序的时间复杂度为O(NlogN),最好、最坏、平均时间复杂度都是O(NlogN)。Java实现: //归并 public void merge(int[] arr, int left, int ...

2019-09-04 13:48:28 118

原创 快速排序(Java)

当数据随机分配时,采用快速排序的平均时间最短。每一轮设一个基点,小于基点的数方基点左边,大于等于基点的放基点右边。因为每次交换不仅限于两相邻数之间,所以大会减少交换的次数,从而提高效率。但最坏情况下仍是只有两相邻数之间金子那个比较交换,最坏时间复杂度:O(n^2)原理:每一趟排序 可将序列分为两部分,其中一部分比另一部分要小,分别对这两部分进行相同的排序操作,直到整个数列有序。过程:6...

2019-09-04 13:24:45 134

原创 堆排序(Java)

堆排序首先要建堆(大堆、小堆,这里以大堆为例)从下往上调整:(从第一个非叶结点开始)每次建好堆后,堆顶元素与堆尾元素交换位置,再对除堆尾元素后剩下的元素进行调整,重新建堆新建的堆(除去上一次的堆尾)中,堆顶与堆尾元素交换位置,除去堆尾元素进行调整……直到调整到堆顶位置处 /** * 堆排序 * 要注意的点:建堆、除去堆顶元素后剩余元素如何调整 ...

2019-09-03 18:43:18 114

原创 冒泡排序及优化、选择排序及优化

1.冒泡排序 /**冒泡排序(稳定) * 比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放 到数组后面。 * 最坏时间复杂度:O(n^2) * 平均时间复杂度:O(n^2) */ public static int[] bubbleSort(int[] arr){ ...

2019-09-03 14:03:55 476

原创 二叉树的增、删、查操作,计算二叉树结点、叶结点个数,获取节点的父结点,遍历二叉树(前序、中序、后序)

首先先封装一个TreeNode类,用来创建二叉树的结点:/* * 二叉树的简单操作 * 二叉排序树中,左节点值<=根结点值<=右结点值,左子树结点<=根结点<=右子树结点*///树结点类class TreeNode{ private TreeNode leftNode;//左结点 private int value;//结点值 pri...

2019-09-03 12:24:47 638

原创 插入排序

插入排序典型的两种排序算法:直接插入排序、希尔排序。1.直接插入排序:经一个数据插入到一个已经排好序的有序表中,得到一个新的有序表,新的有序表长度+1.要注意的是:每一轮排序的过程中需要建立一个哨兵来记录中间变量以及确定数组边界。public int[] insertSort(int[] arr){ if(arr.length == 0){ return nu...

2019-09-02 15:29:44 1362

原创 逆波兰表达式求值(Java)

什么是逆波兰表达式? 逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法。按此方法,每一运算符都置于其运算对象之后,故称为后缀表示。例如:逆波兰表达式 4 7 5- / 解析成普通的算数表达式为4/(7-5)结果为212 3 ...

2019-08-20 18:50:36 414

原创 与图灵机器人进行语音对话(Java)(百度语音识别/合成)

使用Java编写一个与图灵机器人进行对话的工具。但图灵机器人只支持文本对话,并不支持语音交互,所以本程序运用了第三方库百度语音识别/合成,来实现语音交互。我们还可以将下载好的音乐放入指定文件夹,进行简单的配置后还能点歌。1.登录图灵机器人官网:http://www.turingapi.com/,完成注册、身份认证、创建机器人。一般一到两天后就能身份审核成功,创建好机器人之后就会生成自己...

2019-07-16 10:01:34 2792 3

原创 双向链表的简单操作(Java)

//定义一个链表标准接口interface LinkList{ //增加链表结点,返回是否成功 boolean add(Object data); //指定内容结点在链表中是否存在,返回节点索引 int isExist(Object data); //删除指定内容结点,成功是否成功 boolean remove(Object data);...

2019-04-27 10:51:20 97

原创 多例设计模式

多例设计模式与单例设计模式的共同点:1.他们的构造方法都私有化;2.类中都有static的getter方法,用来获取私有的对象属性多例设计模式:class Driver { private String driver; public static final int MALE_DRIVER = 1; public static final int FEMA...

2019-04-27 10:44:28 130

原创 单例设计模式

单例设计模式基本要求:一个类只允许产生一个实例化对象实例化对象的方法有很多种:1.一般情况下实例化对象(1)普通情况下实例化对象class Singleton{ public void print() { System.out.println("普通情况下实例化对象"); }}public class SingletonTest { pu...

2019-04-27 10:35:33 97

原创 抽象类与接口的区别

接口看成一个“纯抽象类”,可以说成是抽象类的一种特例。接口中所有的方法默认为public abstract类型,接口中成员变量默认为public static final类型。另外,抽象类与接口还有以下区别:1.抽象类中可以有普通方法和抽象方法。接口中的方法只能是抽象方法。2.抽象类方法访问权限:public、protected、默认。接口方法访问权限:public。3.抽象类中可以有...

2019-04-08 22:27:15 259

原创 接口的定义与使用

接口定义:接口时抽象方法与全局常量的集合。子类实现接口时,用关键字implements实现。定义一个接口:interface Person{ public static final String name = "葵葵";//全局常量 public abstract void getInfo();//抽象方法}接口特点:1.接口中所有方法都必须是抽象的,默认修饰符...

2019-04-06 19:18:10 2765

原创 抽象类的定义与使用

抽象类定义:抽象类只是在普通类的基础上多了抽象方法。抽象方法用abstract修饰,只有方法声明而没有方法体。定义一个抽象类:abstract class Main { private int num; //普通方法 public void setNum(int num) { this.num = num; } //抽象方法,没...

2019-04-06 16:16:48 2325

原创 java对数组的简单操作

 以下是对数组的几个简单操作:public class ArrayUtils{ //1.计算数组中最大值 public static int arrayMaxElement(int[] data){ if(data == null || data.length == 0) return -1; int max = data[0]; for(in...

2018-11-14 11:13:39 262

原创 顺序表的操作

    线性表是由n个元素组成的一个有限序列,是可以在其任意位置上进行插入和删除操作的线性数据结构。    从数据在物理内存形式上,线性表可分为:顺序表和链表。顺序表    顺序表:用一段地址连续的存储单元一次存储数据的线性结构。    与地址连续的数组类似,线性表又分为:静态顺序表和动态顺序表。  以下主要对静态顺序表进行插入和删除操作:建立头文件“SeqList.h”#pragma once ...

2018-05-13 21:26:24 234

原创 用c语言编写日历

查找某一日期所对应的日历表,这一天是所在年份的第几天,这一天是星期几,打印月份日历表:#include#includeint isleap(int year){ if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) return 1; else return 0;}int max_day(int

2018-03-24 22:01:21 17976 1

原创 扫雷小游戏(C语言)

//game.h#ifndef __GAME_H__#define __GAME_H__#include#include#include#include#pragma warning(disable:4996)#define ROW 11 #define COL 11#define DEFAULT 10void init_board(char mi

2018-01-05 17:18:23 204

原创 三子棋小游戏(c语言)

//game.h#define _CRT_SECURE_NO_WARNINGS 1#ifndef __GAME_H__#define __GAME_H__#include #include #include #include #define ROW 3#define COL 3void InitBoard(char board[ROW][COL], int row,

2018-01-05 16:19:42 280 1

原创 c语言操作符

1、算术操作符 + - * / %prrintf("%d",8/5); // 1prrintf("%d",8/5.0); // 出错!5.0为浮点型,但却以%d的整形形式输出,不符合。prrintf("%d",8%5); // 3prrintf("%d",8%5.0); // 出错!%操作符左右两边必须都为

2017-12-20 11:30:45 203

原创 “程序”,你好,请多指教!

那天天气正好,我却坐在窗前倍感无聊,有一搭没一搭翻着桌上的书。        不知何时,你坐在了我的对面。阳光飘飘洒洒,透过窗正好洒在你白皙棱角分明的脸上。我抬头不经意间似乎有些动容,而你就安安静静的待在那里,一动也不动,没有多余的装饰物修饰,却散发着独特的魅力,让人移不开眼。简直就像从书中走出来的一样!        我问了你的名字。哈哈,原来你的名字叫“程序”。        “我

2017-12-06 22:42:18 245

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除