算法
闭着眼睛听风声
这个作者很懒,什么都没留下…
展开
-
快速排序算法
快速排序算法和冒泡排序算法类似,都是基于交换排序的思想; 具体步骤: 设定一个分解值,通过该分界值将数组分成左右两个部分; 大于该分界值的在右边,小于分界值的在左边,等于分界值的不变; 左边和右边独立的排序; 重复上述过程; 实现思路 选取分界值,选数组中间的那一个作为分界值; 左右两个指针运行,当左边的指针内的数大于分界值停止,当右边的指针小于分界值停止,交换左右两指针的数据; 指针继续运...原创 2019-08-31 10:01:49 · 149 阅读 · 0 评论 -
Java实现堆排序
步骤: 构建大根堆,父节点大于右孩子大于左孩子 首尾交换然后排序 代码 void heap(int[] arr) { int n = arr.length; int t; // 将数组转变成堆 for (int i = n / 2 - 1; i >= 0; i--) { // 如果第i个节点有右孩子,那么n为 单数,n/2向下取整后,再反向计算,肯定是小于n的; ...原创 2019-09-05 16:20:55 · 55 阅读 · 0 评论