240 发简信
  • 集合包含排斥法求120内素数个数

    思路   1. 思想是所有的合数都可由若干个素数因子的积构成,如 18 = 2 * 3 * 3 等等。  2. 考虑到 11*11 = 121 ...

  • 基数排序(JAVA)

    算法   开门见山,基数排序是内排序中性格比较怪异的一种,它无需比较和交换,而是按位分配和收集。通俗地讲就是,对各元素先按个位上的数值排序,接着...

  • 具体把握堆排序(JAVA)

    前言   堆排序是一种动态排序,它基于堆这种数据结构。堆的实质是一棵二叉树,只不过使用的是连续存储。堆分为小根堆和大根堆。小根堆的特点是根结点最...

  • 120
    归并排序(JAVA)

    算法   归并排序和快速排序算法一样都是基于分治算法,都把大规模问题划分成更小规模的子问题。归并排序的内容就是按中点切割表,划分成左右两个子表,...

  • 选择排序(JAVA)

    算法   选择排序与冒泡排序一样都是最朴素简单而又经典的排序算法,效率相对快速排序、堆排序等较低。其思路是,一共进行n-1趟排序,每次筛选出最大...

  • 使用概率算法优化快速排序(JAVA)

    前言   前面一篇文章系统介绍了快速排序算法,提到快速排序虽然平均时间复杂度为o(n*log2(n)),效率相对比较高。但是其在特殊情况下,比如...

  • 优化冒泡排序(JAVA)

    算法   冒泡排序作为最基础最简单的排序算法,实质是相邻两元素比较,若有序则跳过,若无序则交换。最多需n-1趟排序,第i趟需比较n-i次。所以时...

  • 120
    希尔排序(JAVA)

    算法   希尔排序是对直接插入排序的改进,但其本质上仍然是插入排序,只不过它设置了步长,就变成了跨步长的插入排序。当步长为1时,它就是直接插入排...

  • 120
    折半插入排序(JAVA)

    算法   折半插入排序是直接插入排序与折半查找二者的结合,仍然是将待排序元素插入到前面的有序序列,插入方式也是由后往前插,只不过直接插入排序是边...