dest

5亿整数的大文件,怎么排?

℡╲_俬逩灬. 提交于 2020-02-26 05:10:06
【推荐】2020年最新Java电子书集合.pdf(吐血整理) >>> 问题 给你1个文件bigdata,大小4663M,5亿个数,文件中的数据随机,如下一行一个整数: 61963023557681612158020393452095006174677379343122016371712330287901712966901...7005375 现在要对这个文件进行排序,怎么搞? 内部排序 先尝试内排,选2种排序方式: private final int cutoff = 8; public <T> void perform(Comparable<T>[] a) { perform(a,0,a.length - 1); } private <T> int median3(Comparable<T>[] a,int x,int y,int z) { if(lessThan(a[x],a[y])) { if(lessThan(a[y],a[z])) { return y; } else if(lessThan(a[x],a[z])) { return z; }else { return x; } }else { if(lessThan(a[z],a[y])){ return y; }else if(lessThan(a[z],a[x])) { return z; }else {

关于数组和指针作为参数时遇到的问题

≡放荡痞女 提交于 2020-02-23 19:09:04
自己在实现一个类strcpy函数时,发现一些小问题: 首先,函数如下: char *str_n_cpy(char *dest,const char *src) { char *_temp = dest; assert(dest != NULL || src !=NULL); //注意越界 printf("%d",sizeof(dest)); while((*dest++ = *src++) != '\0'); return _temp;}   main函数如下: int main() { char *str1 = "123"; char *str2 = "4567"; printf("%s\n",str_n_cpy(str1,3,str2,3)); return 0; }   运行程序会发现程序崩溃,后来在main函数中把char *str1 = "123"改成char str1[3]={"123"};会发现程序就能正常运行,为什么会这样呢? 经查知,前者实际将str1指向一个常量”123“了,即此时的str1是一个常量指针,其中的内容固然不可改变,所以赋值操作不能进行了;而后者str1实际作为一个普通的char型指针传到函数中,自然可以进行赋值操作。 来源: https://www.cnblogs.com/wangkundentisy/p/4202027.html

02. pt-archiver

一个人想着一个人 提交于 2020-02-23 01:38:56
pt-archiver \ --source h=192.168.100.101,P=3306,u=admin,p='admin',D=db01,t=t01 \ --dest h=192.168.100.105,P=3306,u=admin,p='admin',D=db01,t=t01 \ --file '/root/2000-3000.txt' \ --where '1=1' \ --where "createTime<'2018-12-1'" \ --limit=1000 --txn-size=1000 --progress=1000 \ --no-check-charset --bulk-insert --bulk-delete --statistics \ --no-delete \ --purge \ --dry-run 默认情况下,pt-archiver操作结束后,不会对source、dest表执行analyze或optimize操作, 因为这种操作费时间,并且需要你提前预估有足够的磁盘空间用于拷贝表。 一般建议也是pt-archiver操作结束后,在业务低谷手动执行analyze table用以回收表空间。 pt-archiverBug不会迁移max(id)那条数据的解决方法: which pt-archiver /usr/local/bin/pt-archiver

Springboot + thumbnailator 实现图片压缩上传

♀尐吖头ヾ 提交于 2020-02-20 11:45:36
1、添加Maven < ! -- https://mvnrepository.com/artifact/net.coobird/thumbnailator -- > < dependency > < groupId > net.coobird < /groupId > < artifactId > thumbnailator < /artifactId > < version > 0.4.8 < /version > < /dependency > 2、代码实现: package com.image.service ; import net.coobird.thumbnailator.Thumbnails ; import org.springframework.stereotype.Service ; import org.springframework.web.multipart.MultipartFile ; import javax.imageio.ImageIO ; import java.awt.image.BufferedImage ; import java.io.File ; import java.io.FileOutputStream ; import java.io.OutputStream ; /** * ClassName: ImageService *

grunt构建前端自动化

北慕城南 提交于 2020-02-16 09:23:08
一.grunt是基于nodejs的,所以首先我们需要安装node 二.全局安装grunt 可以参考 http://www.gruntjs.net/docs/getting-started/ 进行安装. 1.全局安装 npm install -g grunt-cli 2.进入当前项目根据配置文件 package.json 进行本地安装,或者直接把以前项目所有用过的本地安装文件直接复制到当前项目使用 3.任务设置 打开gruntfile.js进行设置 module.exports = function (grunt) { // 任务配置,所有插件的配置信息 grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), //1.先清空发布文件夹 clean: { src: ["publish/"] }, //2.复制到发布文件夹 不要破坏源文件 copy: { main: { files: [ { src: 'assets/**', dest: 'publish/' }, // { src: 'assets/*.html', dest: 'publish/assets/' }, ] } }, //3.进行合并 concat: { js:{ dest: 'publish/tmp/concat/js/app.js', src: [

Java - 图像处理工具类

巧了我就是萌 提交于 2020-02-14 08:24:51
package com . boob . common . utils ; import javax . imageio . ImageIO ; import javax . imageio . stream . ImageOutputStream ; import java . awt . * ; import java . awt . geom . AffineTransform ; import java . awt . image . AffineTransformOp ; import java . awt . image . BufferedImage ; import java . io . * ; import java . text . DecimalFormat ; /** * @description:图像处理工具类(本类完全可以使用,但是更加推荐ImageMagick +Jmagick,采用C++实现的一个类库,提供了Java的Api,非常强大和高效) * 而且要为JVM分配较大的堆内存,否则内存溢出 * @author:boob * @since:2020/2/7 */ public class ImageUtils { public ImageUtils ( ) { } /** * 缩放图片 * @param src 源文件 * @param dest

汉诺塔问题(C++)

此生再无相见时 提交于 2020-02-12 14:22:42
模拟盘子移动过程,以三个盘子为例 第一次:最小盘到C 中间盘到到B 最小盘到B 最大盘到C 最小盘到A 中盘到c 小盘到c 实现这个算法可以简单分为三个步骤: (1) 把n-1个盘子由A 移到 B;(C为过渡盘) (2) 把第n个盘子由 A移到 C; (3) 把n-1个盘子由B 移到 C;(A为过渡盘) 到目前为止,求解汉诺塔问题最简单的算法还是同过递归来求,我们说的简单点就是自己是一个方法或者说是函数,但是在自己这个函数里有调用自己这个函数的语句,必须有一个结束点,或者具体的说是在调用到某一次后函数能返回一个确定的值,接着倒数第二个就能返回一个确定的值,一直到第一次调用的这个函数能返回一个确定的值。 代码: #include "stdafx.h" #include <iostream> using namespace std; void hannuota(int n,char src,char medium,char dest); int _tmain(int argc, _TCHAR* argv[]) { int m; cout<<"请输入盘子数量:"; cin>>m; cout<<"移动"<<m<<"个盘子:"<<endl; hannuota(m,'A','B','C'); system("pause"); return 0; } void move(char src

谷歌翻译python Googletrans库

白昼怎懂夜的黑 提交于 2020-02-09 14:13:09
googletrans 是一个免费的、可调用Google Translate API接口的python库。它借助Google Translate Ajax API接口来实现文本的检测和翻译。 googletrans 的基本用法可以参考文档连接: http://py-googletrans.rtfd.io/ API特性: 快速可靠 - 它使用translate.google.com使用的相同服务器 自动语言检测 批量翻译 可自定义的服务URL 连接池(使用requests.Session的优点) HTTP / 2支持 关于库使用的注意事项: 单个文本的最大字符限制为15k。 由于谷歌翻译的网页版本的限制,此API不保证库始终正常工作。 (如果您不关心稳定性,请使用此库。) 如果您想使用稳定的API,我强烈建议您使用Google的官方翻译API。 如果您收到HTTP 5xx错误或#6等错误,可能是因为Google已禁止您的客户端IP地址。 快速开始: 您可以从PyPI安装它: $ pip install googletrans HTTP / 2支持 这对每个人来说都很棒! (在我的测试中速度提高了2倍)如果你想更快地获得googletrans,你应该安装超级软件包。 Googletrans会自动检测是否安装了hyper,如果安装了hyper,它将用于http网络。 基本用法

Linux下面rsync 实现 完全一致的同步方法

旧巷老猫 提交于 2020-02-06 15:27:41
1. 在某些特殊的linux机器上面, 比如龙芯后者是飞腾服务器,部分工具不太好用, 需要使用x86弄好之后进行同步过去, 这个时候scp 最简单但是网络流量非常大, 不如使用rsync, rsync 一开始不知道能够实现source文件夹的删除操作, destation文件夹也可以重演. 2. rsync的两种模式 ssh模式和daemon模式. 简单起见 可以使用ssh-copy-id 实现无密码登录的话 可以使用 ssh 模式 更加方便一些. 关于rsync的两种模式: 该部分额外的内容来自IBM官方网站上的一篇文章。该文章把rsync的运行模式扩展成了四种,但我认为rsync官方文档的两种模式的划分更加合理一些。 所谓rsync daemon,就是在一台机器上永久运行的rsync进程。在任何一台安装rsync的机器上运行rsync --daemon,则这台机器上运行的rsync就是rsync daemon。我们可以把文件发送给daemon,也可以向daemon请求文件。 daemon模式非常适合创建中心备份服务器,或项目存储库。 两种模式的区别前面已经说过,shell模式在源路径和目的路径中使用一个冒号,而daemon模式使用两个冒号。 关于rsync命令的语法: 本地拷贝: rsync [选项] SRC… DEST,在本地进行复制操作 shell模式: rsync [选项

AutoMapper之投影

谁都会走 提交于 2020-02-06 06:43:34
7.投影 AutoMapper有一种自定义映射,叫投影。接下来我们通过一个示例来了解它 7.1示例 //源对象 public class CalendarEvent { public DateTime Date { get; set; } public string Title { get; set; } } //目标对象 public class CalendarEventForm { public DateTime EventDate { get; set; } public int EventHour { get; set; } public int EventMinute { get; set; } public string Title { get; set; } } 映射说明:把日期拆开分别映射到不同字段 CalendarEvent中属性 说明 CalendarEventForm的属性 Date Date中的年月日-> EventDate Date Date中小时-> EventHour Date Date中分钟-> EventMinute [TestClass] public class Projection { [TestMethod] public void ProjectionTest() { var calendarEvent = new