年度博客排行
-
第1名
龙儿筝 -
第2名
宏天软件 -
第3名
青否云后端云 - wallimn
- vipbooks
- gashero
- wy_19921005
- benladeng5225
- fantaxy025025
- zysnba
- e_e
- javashop
- sam123456gz
- tanling8334
- arpenker
- kaizi1992
- xpenxpen
- lemonhandsome
- xiangjie88
- ganxueyun
- xyuma
- wangchen.ily
- jh108020
- Xeden
- johnsmith9th
- zxq_2017
- zhanjia
- jbosscn
- forestqqqq
- lzyfn123
- ajinn
- daizj
- wjianwei666
- ranbuijj
- 喧嚣求静
- sichunli_030
- kingwell.leng
- silverend
- lchb139128
- kristy_yy
- lich0079
- jveqi
- java-007
- sunj
- yeluowuhen
- lerf
- flashsing123
- lxguy
- zhangjijun
- lyndon.lin
最新文章列表
排序算法(二)--希尔排序(插入排序)
希尔排序属于插入排序的一种,也称为缩小增量排序
基本思想:
将待排序数列划分为几个数列,对这几个数列分别进行直接插入排序
具体操作:
选取增量d(小于数列长度n),将数列划分为n/d个数列,对划分的数列进行直接插入排序
再选取一个增量d1,d1<d,重复上述步骤
直到dn = 1结束
取d=5
23 52 12 63 8 17 28 7 ...
java实现插入排序(直接插入、二分查找插入、希尔排序)
直接插入排序
直接插入排序的原理:先将原序列分为有序区和无序区,然后再经过比较和后移操作将无序区元素插入到有序区中,
下面表格中,排序之前取第一个元素为有序区10,无序区9到4,带颜色为有序区。
待排序数组
10
9
8
7
6
5
4
第一次排序
9
10
8
7
6
5
4
希尔排序
希尔排序的主要思想:
1.设定若干个步长step
2.将待排序列按照步长增量分为多个序列,比如步长是2,则将待排序列分为(1,3,5,7....)(2,4,6,8....)两个待排序列
3.分别对若干个待排序列进行直接插入排序
4.最后对整个序列做一次直接插入排序
注:直接插入排序在序列有顺序的时候,效率很高
public class ShellSort {
pr ...
算法可视化系列——排序算法——希尔排序
排序算法可视化系列——篇三“希尔排序”
希尔排序
基本思想分析:
在我的第一个排序算法可视化中,分析了插入排序,但是我们知道,对于数组尺
度比较大的,并且无序度很大,那么使用直接插入排序比较相邻的元素,然后进行排
序,这样做很麻烦。但是如果数组的无序度不是很大的话,那么插入排序就很好了,
比如说我们可以分析两种情况,一种最为糟糕的情况是使用插入排序时,每次都需要
交换, ...
希尔排序
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。
基本思想:
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序
java排序算法(菜鸟版)
数据结构相关的内容在这里。
package sort;
import java.util.Arrays;
public class ArraySorter {
/**
* int数组的排序工具 复习五种排序方法: 交换排序 ...