首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
Java基础知识强化57:经典排序之希尔排序(ShellSort)
】的更多相关文章
Java基础知识强化57:经典排序之希尔排序(ShellSort)
1. 希尔排序的原理: 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shell于1959年提出而得名. 在上面这幅图中: 初始时,有一个大小为 10 的无序序列. 在第一趟排序中,我们不妨设 gap1 = N / 2 = 5,即相隔距离为 5 的元素组成一组,可以分为 5 组. 接下来,按照直接插入排序的方法对每个组进行排序. 在第二趟排序中,我们把上次的 gap 缩小一半,即 gap2 =…
Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁(实际上就是对哈希表加锁). 2. ConcurrentHashMap的内部结构: ConcurrentHashMap为了提高本身…
Java基础知识强化53:经典排序之选择排序(SelectionSort)
1.选择排序的原理图: 2. 选择排序代码实现: package cn.itcast_02; /* * 数组排序之选择排序: * 从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处 */ public class ArrayDemo { public static void main(String[] args) { // 定义一个数组 int[] arr = { 24, 69, 80, 57, 13 }; System.out.println("排序前:&quo…
Java基础知识强化52:经典排序之冒泡排序(BubbleSort)
1. 冒泡排序的原理图: 2. 冒泡排序代码实现: package cn.itcast_01; /* * 数组排序之冒泡排序: * 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处 */ public class ArrayDemo { public static void main(String[] args) { // 定义一个数组 int[] arr = { 24, 69, 80, 57, 13 }; System.out.println("排序前:"); pr…
Java基础知识强化51:经典排序之桶排序(BucketSort)
1. 首先说明三点: (1)桶排序是稳定的 (2)桶排序是常见排序里最快的一种,比快排还要快…大多数情况下 (3)桶排序非常快,但是同时也非常耗空间,基本上是最耗空间的一种排序算法 2. 桶排序的分析过程: 对无序数组有个要求,就是成员隶属于固定(有限的)的区间,如范围为[0-9],考试分数为1-100等 例如待排数字[6,2,4,1,5,9] 准备10个空桶(桶数是固定区间中最大数,比如这里就是10) [6 2 4 1 5 9] 待排数组 [0 0 0 0 0 0…
Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例
1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A: 把s.txt这个文件给做出来 B: 读取该文件的内容,存储到一个字符串中 C: 把字符串转换为字符数组 D: 对字符数组进行排序 E: 把排序后的字符数组转换为字符串 F: 把字符串再次写入ss.txt中 2. 代码实现: package cn.itcast…
Java基础知识强化之集合框架笔记69:Collections类之ArrayList存储自自定义对象并排序的案例
1. ArrayList存储自自定义对象并排序的案例: ArrayList存储自自定义对象,并使用Collections对ArrayList存储基本包装类的元素排序. 2. 代码实现: (1)Student.java: package cn.itcast_02; /** * @author Administrator * */ public class Student implements Comparable<Student> { private String name; private i…
Java基础知识强化之集合框架笔记47:Set集合之TreeSet保证元素唯一性和比较器排序的原理及代码实现(比较器排序:Comparator)
1. 比较器排序(定制排序) 前面我们说到的TreeSet的自然排序是根据集合元素的大小,TreeSet将它们以升序排列. 但是如果需要实现定制排序,比如实现降序排序,则要通过比较器排序(定制排序)实现. 比较器排序是通过Comparator接口帮助的,这个接口包含一个方法int compare(T o1, T o2)方法,该方法用于比较o1和o2的大小: 如果方法返回正整数,则表明o1 大于 o2 如果方法返回0,则表明o1 等于 o2 如果方法返回负整数,则表明o1 小于 o2 int co…
Java基础知识强化之集合框架笔记45:Set集合之TreeSet存储自定义对象并遍历练习1(自然排序:Comparable)
1. 自然排序: TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间的大小关系,然后将集合元素按照升序排列,这种方式就是自然排序. Java中提供了一个Comparable接口,该接口里定义了一个compareTo(Object obj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现该接口的类的对象就可以比较大小. 当一个对象调用该方法(compareTo(Object obj))与另一个对象进行比较的时候,例如obj1.compareTo…
Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)
1. 基础知识: Android(java)学习笔记61:多线程程序的引入 ~ Android(java)学习笔记76:多线程-定时器概述和使用 …