查找与排序
海伦•
求知若渴,大智若愚
展开
-
递归形式进行插入排序
注意要点: 要限制k >= 0 并且 要在 end < a[k] 之前 最后要 k ++ import java.util.Scanner; public class 递归形式进行插入排序 { public static int[] a; public static int n; public static void main(String[] args) { S...原创 2019-04-16 19:22:32 · 350 阅读 · 0 评论 -
计数排序
分析:当数字范围一定,规模比较大的情况下我们可以采用以空间换时间的方法(计数排序) import java.util.Arrays; public class Main { public static int n = 10000000; public static int a[] = new int[10000001]; public static int b[] = new int...原创 2019-04-18 15:54:58 · 88 阅读 · 0 评论 -
调整数组顺序_奇数在左偶数在右
利用快排的思想将其左右成两分块,使指针在两端切换 并且要先判断指针是否在指定范围内,再才能判断大小,要不然很容易越界 快速排序 public class Main { public static int a[] = {2,21,2,13,1,13,22,1313,13,2}; public static void main(String[] args) { for(int ...原创 2019-04-17 21:52:34 · 317 阅读 · 0 评论 -
快速排序
注意:在每次移动指针时要判断条件左边小于右边 每完成一次快排,就将该组数以起始第一个数为边界,左边为大于他的数,右边为小于他的数 public class Main { public static int a[] = {2,21,2,13,1,13,1313,1313,13,2}; public static void main(String[] args) { f...原创 2019-04-17 21:41:56 · 97 阅读 · 0 评论 -
快速设计一个a的n次幂的算法(经典例题)
分析:每次进行翻倍的话也就是目的次数折半,就可以将算法的时间复杂度简化到O(logn) 实现方法第一次翻2倍,第二次4倍,...,第n次2的n次方倍。就可以达到目的 public class Main { public static void main(String[] args) { int result = powI(2,20); Sy...原创 2019-04-17 20:26:10 · 1905 阅读 · 0 评论 -
2的幂表与基础排序算法的性能比
冒泡排序的时间复杂度:O(n2) Arrays.sort的时间复杂度:O(nlogn) import java.util.Arrays; public class Main { public static int a[] = new int[10000* 10 ]; public static int n = 10000 * 10; public sta...原创 2019-04-17 19:32:39 · 119 阅读 · 0 评论 -
顺序查找与二分查找时间复杂度的比较
注意要点:通过System.currentTimeMills();来获取当前时间,来计算该算法运行运算时间 顺序查找的时间复杂度为O(n) 二分查找的时间复杂度为O(log(n)) 但两者的运行时间的结果却千差万别,可知当计算量很大的情况下算法优化的必要性。 import java.util.Arrays; public class Main { public static ...原创 2019-04-17 14:10:51 · 11615 阅读 · 2 评论 -
希尔排序
也称为缩小增量排序 算增量 根据分组 对每一个组进行插入排序 import java.util.Scanner; public class Main { public static int a[]; public static int n; public static void main(String[] args) { Scanner sca = new Scanner(S...原创 2019-04-16 21:46:45 · 63 阅读 · 0 评论 -
汉罗塔
找公式 找重复:划分子方法,将n 分为第n 个盘 和 n - 1 个盘两部分 找变化:变化的是盘子的个数,和它的起始柱子,目标柱子和辅助柱子 得出要使用的递归参数dfs(int n ,String from ,String to,String help) 找出口 n == 1 跳出 import java.util.Scanner; public class Main { publ...原创 2019-04-16 21:15:44 · 322 阅读 · 0 评论