- 博客(26)
- 收藏
- 关注
原创 冒泡排序-Java实现
冒泡排序的原理进行升序:每相邻的两个数进行比较,前者大于后者就交换位置,否则位置不变,n个数据就比较n-1轮,每轮的次数是:n-轮数eg:对 23,12,34,6,57 进行冒泡排序比较4轮第一轮:12、23、6、34、57(比较n-1次)第二轮:12、6、23、34、57(比较n-2次)第三轮:6、12、23、34、57(比较n-3次)第四轮:6、12、23、34、57(比较...
2019-02-28 14:28:25
140
原创 java实现不带头单链表的基本操作
代码实现1.定义一个接口来提供一个链表应该具有的方法(初始化、增、删、查、改、遍历、清空)interface ILinkinterface ILink { /** * 链表初始化操作 */ void init(); /** * 增加节点的操作 * @param data 插入的数据 */ void add...
2018-12-12 17:02:13
347
原创 java实现顺序表
顺序表的概念用一段地址连续的存储单元依次存储数据元素的线性结构。由于数组类型也具有随机存取的特性,因此,也可以用数组来描述数据结构中的顺序存储结构。顺序表的特点1.优点:便于随机存取,读取数据的速度快2.缺点:由于它顺序的存储结构,不便于插入和删除代码实现1.把顺序表的基本操作放在接口中,子类继承接口即可interface ISeqList { /** *...
2018-12-06 16:18:31
2040
1
原创 javaSE新特性概述
注解(Annotation)Annotation可以说是JDK发展的重要技术,从现在的开发来讲,Annotation的使用已经变得非常常见。JDK三个内置注解1. @Override 准确覆写当子类覆写父类方法时,此注解检查覆写的方法是否正确声明,只有满足覆写方法要求才会编译通过,否则编译出错。2. @Deprecated 过期声明建议用户不使用原有的类&方法时,可以在类或方法...
2018-11-08 18:54:50
146
原创 什么是多态以及为什么要使用多态?
什么是多态概念一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使得具有不同内部结构的对象可以共享相同的外部接口。(利用多态可以得到良好的设计)理解谈到面向对象的编程语言时不可避免的就要讲到继承,子类可以继承父类的所有结构(包含私有域与其他属性、方法)(所有私有操作属于隐式继承,需要其他方法调用)并且子类可以添加自己的成员变量以及方法,以实现自己独特的功能如果实际开发...
2018-11-06 15:00:34
5128
2
原创 String类、Object类、包装类总结
1.java.lang.String类1.1String类的两种实例化方式a.直接赋值,在堆上分配空间b.传统方法(通过构造方法实例化String对象)1.2字符串相等比较(比较内容)public boolean equals(String anotherString) ;//成员方法str.equals(anotherString)1.3字符串常量是String的匿名对...
2018-11-05 18:40:08
191
原创 泛型
泛型1.泛型类泛型指的是在类定义的时候并不会设置类中的属性或方法中参数的具体类型,而是在类使用时再定义。eg:泛型类的基本语法class MyClass<T> { T value1;}尖括号 <> 中的 T 被称作是类型参数,用于指代任何类型。实际上这个T你可以任意写,但出于规范的目的,Java 还 是建议我们用单个大写字母来代表类型参数。常见的如
2018-11-05 17:03:34
129
原创 用java实现双向链表
设计思路:创建一个LinkImpl类负责给用户提供数据,负责Node节点的动态挂载。定义一个接口Link(标准),来提供一个链表应该具有的方法。在LinkImpl类内部封装一个类Node保存真实的数据(方便访问彼此的私有属性)创建一个工厂类(把LinkImpl类的实例化交给工厂,让用户去创建对象)Test(测试类供用户使用,只关心数据)代码实现interface ILink ...
2018-11-04 22:51:04
1070
原创 内部类的定义与使用
内部类的基本概念内部类:所谓内部类就是在一个类的内部进行其他类结构的嵌套的操作eg:观察内部类的定义:class Outer { private String msg = "Hello World"; //-------------------------------- class Inner {//定义一个内部类 public void print()...
2018-10-22 16:42:51
298
原创 Java之数组定义与使用
Java数组-引用数据类型数组初始化动态初始化(声明并开辟数组)数组类型[] 数组名称 = new 数据类型[长度]eg: int[] data = new int[5];//声明并开辟一个长度为5的整形数组1.数组通过下标索引来取得元素,下标默认从0开始。数组下标超出数组长度,数组越界异常(运行时异常)2.数组中每个元素都有默认值,默认值是该数据类型的默认值。3.数组名...
2018-10-16 16:02:12
170
原创 Linux基础命令及Linux的权限
Linux权限超级用户:root普通用户 su 切换用户针对文件的权限分了三类用户 - 文件所有者: 文件属于谁 - 文件所属组: 文件属于哪个用户组(组内成员) - 其他用户: 除了上边两类用户之外的用户文件权限也有三类...
2018-09-26 14:35:24
510
原创 求第n项斐波那契数的几种方法
递归以前我们用递归的方法这样来求第n个斐波那契数int Fib(int n){ if (n < 3) return 1; return Fib(n - 1) + Fib(n - 2);}但是这个算法的效率太低,原因如下: 里面有太多的重复计算,时间复杂度过高,导致算法效率低下。迭代这算是一种较为优化的算法long long...
2018-08-17 17:10:58
713
原创 用结构体知识写一个简易通讯录
contact.h(头文件)#ifndef _CONTACT_H#define _CONTACT_H#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <windows.h>#include <string.h>#include <assert.h>typed...
2018-08-04 10:37:26
417
原创 自定义类型:结构体, 枚举, 联合
结构体结构体的声明基础知识结构是一些值的集合, 这些值成为成员变量。结构得每个成员可以是不同类型的变量。结构的声明struct tag//结构体标签{ member-list; //成员列表}variable-list;//变量例如描述一个学生:struct Stu { char name[20];//名字 ...
2018-06-23 13:21:01
173
原创 关于指针的一些理解
指针数组 指针数组是数组,是一个存放指针的数组。 eg:int *arr1[10];//整形指针数组,有十个元素,每个元素都是整形指针。char *arr2[4];//字符指针数组,有四个元素,每个元素都是字符指针。char **arr3[5];//数组有5个元素,每个元素是字符型的二级指针。数组指针 数组指针是指针,是一个指向数组的指针。 eg:...
2018-05-16 23:28:03
144
原创 函数的调用过程(栈帧)
函数的调用过程(栈帧)我们深入地研究一下函数的调用过程。 先看一段简单的代码: #include <stdio.h> int Add(int a, int b) { int z = 0; z = a + b; return z; } int main() { ...
2018-04-22 22:42:32
149
原创 写一个宏将一个数字的奇数位和偶数位交换。
思路首先,我们想到的是交换二进制数的奇数位和偶数位。 eg: 11的二进制为 ........0000 1011 交换后应该是:......0000 0111 那我们可以通过位操作把奇数位往左移一位,偶数位往右移一位即可做到。 那怎么移位呢?请看下图: 代码实现 #include <stdio.h>...
2018-04-14 14:35:30
191
原创 分别输出一个数的奇数位和偶数位的二进制序列
思路 通过观察我们可以发现可以通过移位操作实现奇数位序列和偶数位序列的输出 (1)奇数序列:每次右移奇数位然后&1,可以依次输出。 (2)偶数序列:每次右移偶数位然后&1,可以依次输出。 (3)这样都是逆序输出的,我们在代码中奇数从31位,偶数从30位开始移位即可。代码实现 #include <stdio.h>...
2018-04-13 11:35:23
628
原创 用函数返回二进制中1的个数
思路 从图上分析我们可以把二进制中的1通过位操作取出来再进行统计 代码实现 #include <stdio.h> #include <windows.h> int get_back(int x) { int i = 0; int count = 0;...
2018-04-11 20:56:20
151
原创 在屏幕上打印杨辉三角
思路 杨辉三角 (1)我们先在画图板上简单的写一下杨辉三角,通过观察我们可以发现用二维数组可以很好地实现。 (2)可以把第一列和斜线那一列都赋成1,再打印中间的数 。 (3)通过观察,如果设行数为i,列数为j,arr[i][j] = arr[i-1][j-1] + arr[i-1][j]。 (4)内容都搞定了,然后我们可以通...
2018-04-11 20:07:59
225
原创 用C语言实现简单的扫雷游戏
思路 > 1.通过观察游戏,我们可以想到需要用两个二维数组来实现扫雷的功能。 2.游戏刚开始,需要需要显示棋盘,用“*”遮盖雷的坐标,所以要有一个填充棋盘的函数。 3.通过rand()函数,随机生成雷的坐标,埋雷的函数。 4.每次扫过后,都要显示新的棋盘,显示棋盘的函数,同时显示该坐标周围雷的个数,并在该坐标上显示出来。 5.如果棋盘太大,我们一个...
2018-04-10 21:00:56
403
原创 二分查找和猜数字游戏的实现
二分查找 每次找中间数在主函数中实现 #include <stdio.h> int main() { int arr[] = {1,2,3,4,5,6,7,8,9,10}; int left = 0; int right = sizeof(arr)/sizeof(arr[0])-1; ...
2018-04-01 15:47:57
1098
原创 用C写一个简单的三子棋游戏
基本思路: 打印菜单——选择游戏——打印初始棋盘(棋盘用数组实现)——玩家下棋(输入坐标)——电脑随机下棋(利用rand(srand)的库函数)——判断(棋盘格子是否为空,,棋盘是否满了,判断游戏结果)——结束游戏。代码实现:game.h #define _CRT_SECURE_NO_WARNINGS 1 #ifndef GAME_...
2018-04-01 15:02:54
468
原创 C语言操作符
**操作符===**分类:算术操作符 移位操作符 位操作符 赋值操作符 单⽬操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引⽤、函数调⽤和结构成员 - 算术操作符 “+ - * / %”除了%操作符之外,其他的⼏个操作符可以作⽤于整数和浮点数。对于/操作符如果两个操作数都为...
2018-03-29 21:34:43
218
原创 用C语言打印一个菱形
如何用C输出一个菱形呢?有的人可能会说直接用printf打印。在行数很少的时候这是可以的,但是如果行数太大,很显然这个做法就非常不合理。那我们首先想到的就会是用循环来解决这个问题,先打印上半部分,再打印下半部分。#include <stdio.h>#include <windows.h>int main(){ int i = 0; int j = 0; int line =...
2018-03-25 12:18:31
3761
原创 新的开始!
今天第一次注册博客,万事开头难,我也不知道该说些什么。 我是一个十分感性并且热爱学习的人。兴趣爱好十分广泛,平时喜欢踢球,弹吉他,看电影,玩游戏等等,闲暇时候我也喜欢和志同道合的人一起去旅行。 未来的很长一段时间里,我都要投入到编程的学习中。学习应该有自己的目标,我在编程方面的目标就是成为一个优秀的程序员,从而达到自我实现。 我知道要成为一个优秀的程序员需要艰苦的训练,多...
2018-03-15 11:54:58
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人