排序系列 之 希尔排序算法 —— Java实现
摘要:基本思想: 希尔排序的实质就是分组插入排序,又称缩小增量法。 将整个无序序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序时,再对全体元素进行一次直接插入排序。 因为直接插入排序在元素基本有序的情况下,效率是很高的,因
阅读全文
排序系列 之 快速排序算法 —— Java实现
摘要:基本思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 1.设置 low=0, high=N-1。 2.选择一个基准元素赋值给temp,即te
阅读全文
排序系列 之 冒泡排序及其改进算法 —— Java实现
摘要:冒泡排序算法 冒泡排序算法 改进一 冒泡排序算法 改进二 冒泡排序算法 改进三 冒泡排序算法 基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数据,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的数往上冒。即依次比较相邻的两个数,若发现它们的排序与排序要求相反时,就将
阅读全文
排序系列 之 折半插入排序算法 —— Java实现
摘要:基本思想: 折半插入算法是对直接插入排序算法的改进,排序原理同直接插入算法: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素;排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。 与直接插入算
阅读全文
排序系列 之 直接插入排序算法 —— Java实现
摘要:直接插入排序算法 基本思想: 把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有n-1个元素;排序过程即每次从无序表中取出第一个元素,将它插入到有序表中,使之成为新的有序表,重复n-1次完成整个排序过程。 实例: 0.初始状态 3,1,5,7,2,4,9,6(共8个
阅读全文
排序系列 之 简单选择排序及其改进算法 —— Java实现
摘要:简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换;然后在剩下的数中选出最小的数与第二个数交换;依次类推,直至循环到只剩下两个数进行比较为止。 实例: 0.初始状态 3,1,5,7,2,4,9,6(共8个数) 1.n=8 个数中,最小数值为1,与第一个数交换:1,3
阅读全文