排序
飞起来_大石
码农呆狗
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【算法】 希尔排序 ---java实现
希尔排序 算法思想 每一次设置步长n, 每次将 0,n,2n,3n…; 1,n+1,2n+1… 进行排序 该算法其实是插入排序的优化,意在将插入排序中数据比较/移动的次数减少. 注意点 时间复杂度:O(nlog2n) 空间复杂度:O(1) 稳定性:不稳定(虽然是插入排序(稳定)的优化,但是中间是每个step间隔的插入排序,打破了排序的稳定) 实验代码 public class ShellSort { public static void main(String[] args) {原创 2020-07-19 17:11:28 · 159 阅读 · 0 评论 -
【算法】 插入排序 ---java实现
插入排序 算法思想 每次排列前n个数据,将第n+1个数据插入到前n个中.在前n个数据中寻找到合适的位置并插入。 实验步骤 从索引1开始,遍历每个元素 遍历第n+1个元素(设为temp)时,将这个元素与前n个元素比较大小(假如为升序排列,遍历至第x个元素) 如果temp<arr[x],将这个元素的值赋给arr[x+1],继续循环 如果temp>=arr[x],跳出循环,继续执行步骤1; 注意点 时间复杂度:O(n^2) 空间复杂度:O(1) 稳定性:稳定 实验代码 pub原创 2020-07-19 16:53:47 · 203 阅读 · 0 评论 -
【算法】 桶排序 BucketSort ---java实现
桶排序 桶排序是根据集合的键值处于同一区域的元素放在同一个桶,再在桶中间使用其他排序方法,得到有序数列,再将每个有序数列进行拼接,得到整个集合完成排序的结果. 步骤 确定桶数 遍历所有值,确定索引后,将值放在对应的桶中 遍历所有桶,将其使用一种排序方法进行排序(我这里选用的是快速排序Collections.sort()) 遍历所有桶,将其中的所有有序集合组装成一个整个的有序集合 注意点 桶排序适用于数据分布较为平均的数据集合,如果数据在每个区间的疏密程度相差过大,很可能会造成桶排序无效 桶排序的稳定原创 2020-07-18 10:31:26 · 1239 阅读 · 0 评论 -
【算法】快速排序 QuickSort ---java实现
算法思想:分治递归算法 大问题: 使用一个标准值将一个无序数组分为比无序数组大的和比无序数组小的两个小子串A,B 较小问题:将大问题中的两个小子串分别使用新的标准值分别划分为两个新的小子串,共得到得到四个子串C,D,E,F 标准值:标准值是从该段子串中取的一个元素,一般是子串的第一个元素 void sort(int * arr,int start,int end){ if(sta...原创 2020-07-18 10:28:04 · 211 阅读 · 0 评论
分享