240 发简信
IP属地:台湾
  • 集合包含排斥法求120内素数个数

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

  • 基数排序(JAVA)

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

  • 具体把握堆排序(JAVA)

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

  • 120
    归并排序(JAVA)

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

  • 选择排序(JAVA)

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

  • 选择排序(JAVA)

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

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

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

  • 优化冒泡排序(JAVA)

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

  • 120
    希尔排序(JAVA)

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

  • 120
    折半插入排序(JAVA)

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

  • 120
    直接插入排序(JAVA)

    前言   本文集将用java语言实现包括插入排序(直接插入、折半插入、希尔排序),交换排序(快速排序和冒泡排序),选择排序,堆排序,归并排序以及基数排序在内的所有内排序算法。...

  • 二叉树的层次遍历

    前言 对于二叉树来说,层次遍历可以说是很平常的,但由于其应用广泛,比如可以用来求二叉树的高度和宽度,因而非常重要。对于任何一个程序员来说掌握都是必须的。 思路 非常简单,利用...

  • 二叉树的非递归遍历三(后序/JAVA)

    思路 二叉树的后序非递归遍历相对来说比前序和中序要难一点,那么原因何在呢?根据“左右根”的原则,众所周知,遍历的起点应该在最左端,然而并不一定是左子树的尽头,他还可能在最左端...

  • 二叉树的非递归遍历二(中序/JAVA)

    思路 与先序非递归遍历非常类似,沿左子树向下搜索,将结点圧入栈中直到结点为空即到达最左端,出栈获得结点并访问,再沿右子树继续。可以看到与先序唯一的不同,先序是在压入栈之前访问...

  • 二叉树的非递归遍历一(先序/JAVA)

    前言 二叉树的非递归遍历对于初学者来说可能不太容易掌握,其实它源于递归遍历,只是把递归栈换成了我们自己的栈。掌握了这一点,无论是先序中序还是后序都非常简单。 思路 按照先序“...

  • 牛!

    IT 项目经理成长手记(一)

    1. 什么是项目经理: 项目经理是公司委派的负责实现项目目标的个人,是公司授权的项目负责人,是项目的直接组织者和领导者,项目经理对外代表公司与客户和分包单位进行联系,处理合同...

  • IT 项目经理成长手记(一)

    1. 什么是项目经理: 项目经理是公司委派的负责实现项目目标的个人,是公司授权的项目负责人,是项目的直接组织者和领导者,项目经理对外代表公司与客户和分包单位进行联系,处理合同...