bee

插入排序之希尔排序(Java)

亡梦爱人 提交于 2020-10-12 05:01:39
插入排序之希尔排序(Java) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 希尔排序法介绍 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 希尔排序法基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止 代码(交换式) package cn.guizimo.sort; import java.util.Arrays; public class ShellSort { public static void main(String[] args) { int[] arr = {8, 9, 1, 7, 2, 3, 5, 4, 6, 0}; System.out.println("排序前"); System.out.println(Arrays.toString(arr)); shellSort(arr); System.out.println("排序后"); System.out.println(Arrays.toString(arr)); } public static

OSChina 周日乱弹 —— 这个小教室好有安全感啊

有些话、适合烂在心里 提交于 2020-10-09 04:28:16
Osc乱弹歌单(2020)请戳( 这里 ) 【今日歌曲】 @ 薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《萤火之森》- CMJ 手机党少年们想听歌,请使劲儿戳( 这里 ) @ NakiFu : #母亲节送什么给妈妈# 上周去逛街 看到一套超级好看的睡衣 就送给我妈了 果然 我的眼光很可 想念小时候妈妈在前面走路, 牵着妈妈的手快步跟上的情景, “妈妈 等等我。” 还能送点别的么。 @ 冰峰雪座 : #母亲节送什么给妈妈# 工作以来,今年还是第一次母亲在我身边,打算送花 从小到大就妈妈对你最好了, 巴蜀(@ 巴拉迪维 )每年就一个套路, 你妈肯定夸你这孩子实在。 @ 巴拉迪维 : #母亲节送什么给妈妈# 其实每年我都是一样的套路:直接银行卡里转账,然后告诉老妈,想买啥就买啥,钱不够再喊我。 然后你妈妈想起来你小时候的事情, 妈妈从小把你带大也是不容易, @ Michael62 :桌上是生活,桌下是未来。 “这个小教室好有安全感啊。” 这种苦难的生活反而能磨砺出好孩子, @ ArcticF0X :出地铁遇到个白嘟嘟的小男孩,大概6,7岁。手里拿着一个空糖盒,脚下散落一地的糖。他朝我说:“大姐姐,小心。你可以帮我一起捡糖吗?”我蹲下去一边捡一边和他说,糖脏了不能吃了。他非常专注捡糖并没有回我。后边他妈妈来了拉着他赶车并说给他买新的别捡了。他不肯走:

ng-alain的sf如何自定义部件

假装没事ソ 提交于 2020-10-08 04:16:23
一、背景 最近使用ng-alain做前端,sf的部件很丰富,但是做起来之后就会发现,多多少少会有一些不符合需求的东西,比如: 这是一个string的部件,后边跟上一个单位看着很不错,但是我们通常在使用number时会更需要这个单位,然而官方的部件并没有 再比如: 我想做一个编辑框,要求内容不可编辑,并且该内容要从别的列表进行选择,下拉选择可以满足需求,但是如果内容太多,有时就不方便使用下拉框了,那么这时候我们就需要自定义 二、自定义ng-alain部件的流程 1、组件的整体结构 2、首先,组件 click-input.component.html ,自定义组件要包在 sf-item-wrap 特殊标签里面 <sf-item-wrap [id]="id" [schema]="schema" [ui]="ui" [showError]="showError" [error]="error" [showTitle]="schema.title"> <!-- 开始自定义控件区域 --> <div nz-row> <div nz-col nzSpan="16"><input type="text" [placeholder]="placeholder" nz-input [(ngModel)]="content" [disabled]="inputDisable"

安装vant-weapp 组件

回眸只為那壹抹淺笑 提交于 2020-10-07 06:51:11
一、新建小程序项目 二、打开cmd,小程序项目目录下 npm i vant-weapp -S --production 2.1 如果执行上面的代码报错了 那你就执行一下:npm init -y 微信开发工具里面就会出现:package.json这样就解决问题了 2.2 接着就可以执行:npm i vant-weapp -S --production 这样就可以了~~~~ 三、在微信开发者工具中,就可以用了 四、使用 在app.json引入 { "pages":[ "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" }, "style": "v2", "sitemapLocation": "sitemap.json", "usingComponents":{ "van-cell":"./miniprogram_npm/vant-weapp/cell/index" } } 在wxml里面使用了! <van-cell-group> <van-cell

CPU

|▌冷眼眸甩不掉的悲伤 提交于 2020-10-07 00:50:32
ARM公司 总部在剑桥 , 是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。ARM公司利用这种双赢的伙伴关系迅速成为了全球性RISC微处理器标准的缔造者。这种模式也给用户带来巨大的好处,因为用户只掌握一种ARM内核结构及其开发手段,就能够使用多家公司相同ARM内核的芯片。 ARM公司 在看到移动设备对64位计算的需求后,于2011年发布了ARMv8架构(64位),也叫 也叫arm64,而 ARMv7是32位的ARM构架 。"64位“指ARMv8架构具备 64位计算 能力。 ARMv8架构 是为了下一代ARM指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的64位架构,ARMv8使用了两种执行模式,AArch32和AArch64。顾名思义,一个运行32位代码,一个运行64位代码。ARM设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。这意味着64位指令的解码器是全新设计的,不用兼顾32位指令,而处理器依然可以向后兼容。 ARM架构 比 X86架构 耗电少,但X86架构性能好。 来源: oschina 链接: https://my.oschina.net/u/4459289/blog/4279822

java入门(二) | 八大基础类型

蹲街弑〆低调 提交于 2020-10-06 00:54:18
首发于: java入门(二) | 八大基础类型 java入门系列,从零开始!!! 上一期给大家讲到了java中第一个工程的搭建以及HelloWorld的实现,和对实现HelloWorld语句的详解 第二期:其乐将为大家带来,对java的八大基础类型的讲解与运用,你知道八大基础有哪些吗?他们之间又有什么特点和关联呢?这期之后相信你将会有更好的理解... 1、八大基础类型 1.1 介绍 1.2 练习1:测试最大值最小值 创建Basic工程 创建cn.qile.basic包 创建Test1_Scope.java package cn.qile.basic; //这个类用来测试取值范围 public class Test1_Scope { public static void main(String[] args) { //测试整型数据范围 byte short int long //创建变量保存byte取值 -- 变量类型 变量名=变量值 byte min = Byte.MIN_VALUE; byte max = Byte.MAX_VALUE; System.out.println(min);//-128,打印变量的值 System.out.println(max);//127 short smin = Short.MIN_VALUE; short smax = Short.MAX

RocketMQ学习教程:07.RocketMQ消息查询【云图智联】

匆匆过客 提交于 2020-08-17 16:05:23
在实际开发中,经常需要排查一条消息是否成功发送到底层MQ中,或者查看MQ中消息的内容,以及如何将消息发送给指定的/所有的消费者组重新消费。本文对RocketMQ提供到的查询机制和背后原理进行深入的介绍。文章主要包括4个部分: 消息查询介绍:介绍消息查询中使用到的Message Key 、Unique Key、Message Id 的区别 消息查询工具:分别介绍命令行工具、管理平台、客户端API这三种工具的详细用法,以及如何让消费者重新消费特定的消息。 核心实现原理:介绍Message Key & Unique Key与Message Id的实现机制上区别,Unique Key在Exactly Once语义下的作用,以及为什么Message Id查询效率更高。 索引机制:介绍Message Key & Unique Key底层使用的哈希索引机制 1 消息查询介绍 RocketMQ提供了3种消息查询方式: 按照Message Key 查询:消息的key是业务开发同学在发送消息之前自行指定的,通常会把具有业务含义,区分度高的字段作为消息的key,如用户id,订单id等。 按照Unique Key查询:除了业务开发同学明确的指定消息中的key,RocketMQ生产者客户端在发送发送消息之前,会自动生成一个UNIQ_KEY,设置到消息的属性中,从逻辑上唯一代表一条消息。 按照Message

Qt开源作品17-IP地址输入控件

大兔子大兔子 提交于 2020-08-15 07:07:28
一、前言 这个IP地址输入框控件,估计写烂了,网上随便一搜索,保证一大堆,估计也是因为这个控件太容易了,非常适合新手练手,一般的思路都是用4个qlineedit控件拼起来,然后每个输入框设置正则表达式过滤只能输入3位数字,然后安装事件过滤器识别回车自动跳到下一个输入框。关于如何设置正则表达式过滤,这个可以搜索查到,本人也不大懂这个规则,貌似还有专门的书籍专门介绍正则表达式,可能这块非常强大。 主要功能: 可设置IP地址,自动填入框 可清空IP地址 支持按下小圆点自动切换 支持退格键自动切换 支持IP地址过滤 可设置背景色/边框颜色/边框圆角角度 二、代码思路 IPAddress::IPAddress(QWidget *parent) : QWidget(parent) { bgColor = "#FFFFFF"; borderColor = "#A6B5B8"; borderRadius = 3; //用于显示小圆点的标签,居中对齐 labDot1 = new QLabel; labDot1->setAlignment(Qt::AlignCenter); labDot1->setText("."); labDot2 = new QLabel; labDot2->setAlignment(Qt::AlignCenter); labDot2->setText("."); labDot3

Java并发编程:volatile关键字解析

送分小仙女□ 提交于 2020-08-15 04:50:33
Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。   以下是本文的目录大纲:   一.内存模型的相关概念   二.并发编程中的三个概念   三.Java内存模型   四..深入剖析volatile关键字   五.使用volatile关键字的场景   若有不正之处请多多谅解,并欢迎批评指正。   请尊重作者劳动成果,转载请标明原文链接:   http://www.cnblogs.com/dolphin0520/p/3920373.html 一.内存模型的相关概念   大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题