首页 文章 精选 留言 我的

精选列表

搜索[压缩算法],共10005篇文章
优秀的个人博客,低调大师

Java算法-排序算法

冒泡排序 方法sort是基本的冒泡排序, sort1/sort2是冒泡排序的两种优化 package me.zx.algorithm.program.sort; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 冒泡排序. * Created by zhangxin on 2017/12/27. * * @author zhangxin * @since 0.0.1 */ public final class BubbleSort { private static final Logger LOGGER = LoggerFactory.getLogger(BubbleSort.class); /** * 基本的冒泡排序. * @param a 待排序数组 */ public static void sort(int[] a) { int temp = 0; for(int i = a.length - 1; i > 0; i--) { for(int j = 0; j < i; j++) { if(a[j + 1] < a[j]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } /** * 优化的冒泡排序1. * 当某一趟遍历没有交换,就说明已经遍历好了,就不用再迭代了 * @param a 待排序数组 */ public static void sort1(int[] a) { int temp = 0; boolean sorted = false; for(int i = a.length - 1; i > 0; i--) { sorted = false; //初始值设置为未排序 for(int j = 0; j < i; j++) { if(a[j + 1] < a[j]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; sorted = true; //发生排序时重新设值 } } if(!sorted){ //当经过一次遍历没有发生一次排序, 或者上次排序位置与本次排序位置相同 break; } } } /** * 优化的冒泡排序2. * 记录每次遍历数据之后交换次序的位置,显然这个位置之后的数据已经有序了不用再排序了。因此通过记录最后发生数据交换的位置就可以确定下次循环的范围了 * @param a 待排序数组 */ public static void sort2(int[] a) { int temp = 0; int lastChangeLocation; //上次排序发生的位置 int nowChangeLocation = a.length - 1; //本次排序发生的位置 for(int i = a.length - 1; i > 0; i--) { lastChangeLocation = nowChangeLocation; for(int j = 0; j < i; j++) { if(a[j + 1] < a[j]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; nowChangeLocation = j; //发生排序时重新设值 } } if(lastChangeLocation == nowChangeLocation){ //当经过一次遍历没有发生一次排序, 或者上次排序位置与本次排序位置相同 break; } } } public static void main(final String[] args){ // int[] a = {0, 1, 2, 3, 4, 5, 6}; int[] a = {6, 5, 4, 3, 2, 1, 0}; LOGGER.info("原数组:{}", a); sort1(a); LOGGER.info("现数组:{}", a); } }

优秀的个人博客,低调大师

linux打包压缩磁盘管理

Linux管理 命令df 用于查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认以KB为单位显示: 文件系统1K-块 已用 可用 已用% 挂载点 -i:表示查看inodes的使用情况, df -i |grep -v tmps //grep -v的作用是过滤掉包含tmpfs字符串的行 -h:表示使用合适的单位显示: -k、-m:分别表示以KB和MB为单位显示 命令du 用来查看某i个目录和文件所占空间的大小, -a 表示全部目录和文件的大小都列出来 -b 表示列出的值以B为单位输出 -k 表示以KB为单位输出,这和默认不加任何选项的输出值是一样的 -m 表示以MB为单位输出 -h 表示系统自动调节单位 -c 表示最后加总 -s 表示只列出总和 磁盘分区和格式化 增加虚拟磁盘 在当前的虚拟机选项卡点击鼠标右键,选择设置 此时弹出虚拟机设置在左侧选中磁盘,然后点击下放的添加按钮,此时会弹出添加硬件向导对话框,点击下一步 选择磁盘类型走默认 选择磁盘走默认 指定磁盘容量这里设定最大磁盘大小5GB,选择 将虚拟机磁盘储存为单个文件: (6)点击下一步,点完成,现在不能被识别,需要重启 命令:fdisk Linvx下磁盘的分区工具, fdisk -l fdisk -l /dev/sdb p表示打印当前磁盘的分区情况 n表示建立一个新的分区 W保存 q表示退出 d表示删除一个分区 [root@ns1 ~]# fdisk /dev/sdb 分区由:主分区,逻辑分区,扩展分区 主分区最多可以创建4个,如果想创建第5个,需要创建一个逻辑分区 p:主分区 e:逻辑分区 创建主分区,区号为1,然后敲击回车 指定分区大小, 因为用的是CentOS7版本,默认最低为2G 建立4个区后,在建出错, 删除实验所建分区 创建新分区时选择扩展分区 W:表示保存 Fdisk -l /dev/sdb 查看分区情况。 格式化磁盘分区 Ext 文件系统类型 -i:设定inode的大小 -n:设定inode的数量 -t:指定文件系统的类型 (ext2,ext3) .指定块大小, 会提示块值设置太大,直接y强制格式化 格式化之后还不可以直接使用,需要挂载。 挂载sdb5到aming 挂载点要求:空目录,不可以家目录。 多个分区可以挂载同一个目录下,但是会覆盖前一个。 命令:mount 备注:可以查看已挂载分区的文件系统类型,未挂载的分区可以使用blkid命令查看 备注:先建一个空目录,在目录里面建一个空白文档, 备注:这条命令是把刚才格式化的/dev/sdb5挂载到/newdir上 备注:通过df -h命令可以查看刚刚挂载的分区 挂载不存在的会报错 挂载点1234不存在 也可以使用LABEL的方式挂载分区 备注:umount命令,用来卸载磁盘分区 挂载分区 格式化完成后进行挂载 将sdb2也挂载到aming下 两个分区,都挂载到aming目录下 ,不会占用sdb5空间,已经覆盖 查看分区内容 挂载常用选项 Mount -t 用来指定分区格式 -a 配置文件里面的配置全部挂载上 Blkid 可以通过blkid命令获取各分区的UUID 6.4挂载/卸载磁盘 mount命令 [root@ns1 ~]# mkdir /newdir [root@ns1 ~]# touch /newdir/newfile.txt [root@ns1 ~]# ls /newdir newfile.txt [root@ns1 ~]# mount /dev/sdb5 /newdir mount: you must specify the filesystem type [root@ns1 ~]# ls /newdir newfile.txt [root@ns1 ~]# df -h |grep -v tmpfs Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 2.1G 15G 13% / /dev/sda1 488M 33M 430M 8% /boot [root@ns1 ~]# 6.4.2/etc/fstab配置文件 这个文件中显示了系统启动时需要挂在的各个分区 学完/etc/fstab我们可以自己修改这个文件 卸载之前已经挂在的/dev/sdb5 # umount /dev/sdb5 # df -h |grep -v tmps Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 2.1G 15G 13% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 488M 33M 430M 8% /boot 使用命令df -h查看 -t选项:用来指定挂载的分区类型默认不指定,自动识别 -o 用来指定挂载的分区有那些特性,即上面的/etc/fstab配置文件中地撕裂有哪些 命令:blkid 用来获取各个分区的UUID 如果想让某个分区在开机后自动挂载1.在/etc/fstab中添加一行,2.是把挂载命令写道etc/rc.d/rc.local文件里,系统启动后会执行这个文件中的命令 命令umount 这个命令后便可以直接跟挂载点也可跟分区,但不可以跟LABEL和UUID 建立一个swap文件增加虚拟内存安装 建立swapfile-->格式化位swap格式--->启动该虚拟机磁盘 建立swapfile 后边将他格式化位swap格式: 就

优秀的个人博客,低调大师

Hadoop使用lzo压缩格式

在hadoop中搭建lzo环境: wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz export CFLAGS=-m64 ./configure -enable-shared -prefix=/usr/local/hadoop/lzo/ make && make test && make install 在hadoop-env.sh中 export LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib 将如下配置到 core-site.xml 中: <property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value> </property> <property> <name>io.compression.codec.lzo.class</name> <value>com.hadoop.compression.lzo.LzoCodec</value> </property> 将如下配置到mapred-site.xml中: <property> <name>mapred.compress.map.output</name> <value>true</value> </property> <property> <name>mapred.map.output.compression.codec</name> <value>com.hadoop.compression.lzo.LzoCodec</value> </property> <property> <name>mapred.child.env</name> <value>LD_LIBRARY_PATH=/usr/local/hadoop/lzo/lib</value> </property>

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册