![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 60
Vanilla_Chi
这个作者很懒,什么都没留下…
展开
-
希尔排序实现
定义交换函数:private static void swap(int[] arr, int i, int j) { if(i == j) return; arr[i] = arr[i] ^ arr[j]; arr[j] = arr[i] ^ arr[j]; arr[i] = arr[i] ^ arr[j]; }希尔排序: 插入排序变原创 2015-03-18 14:53:13 · 460 阅读 · 0 评论 -
简单平方阶排序总结
程序语言:Java 定义交换函数:public void swap(int[] arr, int i, int j){ if(i == j) return; arr[i] = arr[i]^arr[j]; arr[j] = arr[i]^arr[j]; arr[i] = arr[i]^arr[j]; }选择排序 分析:每次从未排好序部分遍历一遍保留最小值的脚标,与原创 2015-03-17 19:42:36 · 897 阅读 · 0 评论 -
排序算法简述
一 、排序算法按时间复杂度分类 平方阶:选择排序,插入排序,冒泡排序 对数阶:归并排序,快速排序,堆排序 O(n^(1+t))阶,t介于0~1之间:希尔排序 线性阶:桶排序 二、排序算法按是否稳定分类 (稳定是指,相同的元素排序后是否能保持排序前的前后顺序) 稳定的排序:插入排序,冒泡排序,归并排序,桶排序 不稳定的排序:选择排序,快速排序,堆排序,希尔排序 注:可以理解为,如果需要长距原创 2015-03-17 19:31:50 · 602 阅读 · 0 评论 -
按条件重组数组
快速排序变种: 一、将数组按条件重组成两半重点:分割数组 + 扩展条件封装 数组分割:两种方式 1. 两个游标一个从前向后,一个从后向前 2. 两个游标都是从前向后。 时间复杂度:两种时间复杂度都是O(n)条件封装–条件包括: 1. 按奇数偶数分割 2. 按正数负数分割 3. 按整除3不整除3分割 4. ……eg. 剑指offer14—调整数组顺序使奇数位于偶数前面private s原创 2015-03-19 10:20:12 · 1974 阅读 · 0 评论 -
对数阶排序算法
定义交换函数:public void swap(int[] arr, int i, int j){ if(i == j) return; arr[i] = arr[i]^arr[j]; arr[j] = arr[i]^arr[j]; arr[i] = arr[i]^arr[j]; }归并排序 分析:递归分治,不断分割排序合并 用空间换时间 空间复杂度:O(n)原创 2015-03-18 09:53:49 · 2067 阅读 · 3 评论