- 博客(17)
- 收藏
- 关注
原创 希尔排序
介绍: 希尔排序是插入排序的一种。 也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 希尔排序是非稳定排序算法。思路:如序列 9 8 7 6 5 4 3 2 1确定一个增量序列,如4(length/2)2 1,从大到小使用增量。使用第一个增量,将序列划分为若干个子序列,下标组合为0-4-8,1-5,2-6,3-7依次对子序列使用直接插入排序法;使用第二个增量,将序列划分为若干个子序列(0-2-4-6-8),(1-3-5-7);依次对子序列使用直接插入排序法;使用第三
2020-08-29 16:23:26 90
原创 递归(5)—— 二分查找的递归解法
分析: 全范围内二分查找 等价于三个子问题: 左边找(递归) 中间找 右边找(递归) 注意:左边找和右边找只选其一。代码实现:public class _15二分查找的递归解法 { public static void main(String[] args) { int arr[] = {1,2,3,4,5}; System.out.println(binarySearch(arr,0,4,4)); } //arr:传入的数组 //low、h
2020-08-29 15:08:43 165
原创 递归(4)—— 汉诺塔
分析: 初始的N个从小到大的盘子,N是最大编号。 1-N从A移动到B,C作为辅助。 等价于: 1、1-N-1从A移动到C,B作为辅助。 2、把N从A移动到B。 3、1-N-1从C移动到B,A作为辅助。代码实现:public class _14汉诺塔 { public static void main(String[] args) { printHanoiTower(3,"A","B","C"); } static void pr
2020-08-29 14:48:18 211 1
原创 递归(3)—— 递归形式进行插入排序
分析: 对数组的0-倒数第一个排序等价于: 对数组的0-倒数第二个元素,这部分排序 然后把最后一个元素插入到这个有序的部分中。代码:public class _13递归形式进行插入排序 { public static void main(String[] args) { int arr[] = {1, 2, 4, 3, 4, 3, 5, 2, 5}; insertSort(arr, 8); for (int i = 0; i < arr.length; i++) {
2020-08-29 12:10:44 445
原创 递归(2)—— 斐波那契数列、最大公约数
一、斐波那契数列介绍 斐波那契数列,又称黄金分割数列,因数学家莱昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。代码实现public class _11斐波那契数列 { public static void main(String[] args) { System.out.println(fib(6)); } static int fib(int n) {
2020-08-29 10:04:01 325
原创 初识react(13)—— 使用 moment 来获取日期
在写项目时,我们有时需要获取当前时间,这时我们除了用之前 js 获取日期的方式之外,也可以使用 moment 来获取日期。1、安装 momentnpm install moment --save2、引入 momentimport moment from 'moment'3、使用 moment获取当前时间://获取 当前时间moment().format('YYYY-MM-DD HH:mm:ss'); //2020-08-25 10:23:59//获取年份moment().
2020-08-25 11:33:43 9581
原创 初识react(12)——如何在 基于antd的表格中 渲染 接口获取的数据
方法一:代码如下:import React,{Component}from 'react'import {Table} from 'antd';import http from "../../server" //这里是我跨域所用到的export default class School extends Component { state = { data:[] }; //发送get请求获取数据 async getList(){
2020-08-24 11:58:13 1980 2
原创 递归(1)—— 求阶乘 打印 i 到 j 对数组求和 翻转字符串
一、求阶乘分析代码实现public class _02求阶乘 { public static void main(String[] args) { int res = f(5); System.out.println(res); } //f(n)求n的阶乘,f(n-1)求n-1的阶乘 static int f(int n) { if(n == 1) return 1; return n * f(n-1); }}运行结果二、打印 i 到 j代码实现pu
2020-08-14 13:08:14 232
原创 位运算(8)—— 出现k次与出现1次
题目 数组中只有一个数出现了一次,其他的数都出现了k次,请输出只出现了1次的数。分析 例如2个二进制数10做不进位加法,结果为二进制00;10个十进制数20做不进位加法,结果为十进制0,由此可得上图规律,k个相同的k进制数做不进位加法,结果为0。故我们可以将所有的数转化成为K进制,然后做K进制的不进位加法,得出的结果再从K进制转换为10进制。代码实现public class _07出现k次与出现1次 { public static void main(String[] args) {
2020-08-14 11:57:24 317
原创 位运算(7)—— 0~1之间浮点实数的二进制表示
题目 给定一个介于0和1之间的实数,(如0.625),类型为double,打印它的二进制表示(0.101,因为小数点后的二进制分别表示0.5,0.25,0.125……)如果该数字无法精确的用32位以内的二进制表示,则打印“ERROR”。分析 这里用到的是小数化为二进制数,×2取整。代码实现public class _06是0到1间浮点实数的二进制表示 { public static void main(String[] args) { double num = 0.625; St
2020-08-13 16:17:08 410
原创 位运算(6)—— 将整数的奇偶位互换
题目 将整数的奇偶位互换。分析代码实现public class _05将整数的奇偶位互换 { public static void main(String[] args) { int a = 6; int b = m(a); System.out.println(b); } private static int m(int i) { //1010 换成16进制是a int ou = i & 0xaaaaaaaa;//和 1010 1010 1010……做
2020-08-13 15:34:52 220
原创 位运算(5)——用一条语句判断一个整数是不是2的整数次方
题目 用一条语句判断一个整数是不是2的整数次方。分析 如果一个整数是2的整数次方,那它的二进制表示中有且只有一个1,其余为0。例如 8 —— 1000,16 —— 10000等等。反之如果不是2的整数次方,它的二进制表示中可有多个1,例如 9 —— 1001。 若将该整数减去1再与自己进行与运算,如 0111 ^ 1000 = 0,仅有的1也变为了0。根据这个规律,我们可以解答该题。代码实现import java.util.Scanner;public class _04是不是2的整
2020-08-13 15:13:21 398
原创 位运算(4)——二进制中1的个数
题目 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 例如:9的二进制表示为 1001,有2位是1分析 假设该二进制数为N,该题有三种解法,可逐位判断,也可利用 (N-1) & N。代码实现import java.util.Scanner;public class _03二进制中1的个数 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); i
2020-08-13 14:29:57 262
原创 位运算(3)——只出现一次的数字
题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 4分析 根据 a ^ a = 0,0 ^ b = b 即可消除重复元素,得到落单元素。代码实现public class _02只出现一次的数字 { public static void main(String[] args) { // 这里用1-5数举例,数组长度为9 i
2020-08-13 12:21:10 183
原创 位运算(2)——找出唯一成对的数
问题 1—1000这1000个数放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出来。不用辅助存储空间,能否设计一个算法实现?分析 在位运算中,A ^ A = 0; B ^ 0 = B,我们可以让1—1000这1000个数异或后的值跟数组中的1001个元素异或,即(1 ^ 2 ^ … ^ 1000)^(1 ^ 2 ^ … ^ 1000 ^ 重复数k),即(1 ^ 1) ^ (2 ^ 2) ^ … ^ (1000 ^ 10
2020-08-13 11:51:22 212
原创 webpack 项目创建打包
1. 全局安装 webpacknpm install webpack -g 网上有人说 webpack 4.0以上版本坑比较多,所以我安装了3.5.3版本的。npm install webpack@3.5.3 -g2. 创建空文件夹3. npm init -y 下载 package.jsonnpm init -y4. 局部安装 webpacknpm install webpack@3。5.3 --save-dev5.在文件夹下创建webpack.config.js文件,并配置,如
2020-08-11 16:16:01 299
原创 webpack 基本概念
今天无意看到电脑上有个 webpack 的小视频,就学了学。虽然杂音很大,讲解员中间也卡了几次,但总归让我对 webpack 有了些简单的了解。 想着还是先把 webpack 的基本概念搞明白点,所以第一篇博客就先总结一下概念吧。什么是 webpack 根据 webpack 中文网所说可知,webpack 本质上是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr
2020-08-04 13:38:10 465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人