摘要:
选择排序算法是另外一种简单的排序算法,该算法的时间复杂度最好时为O(n^2),最差时为O(n^2),空间复杂度为O(1)。另外该算法是不稳定的,在序列较小时效果较好。 该算法的基本思想是:不断地取出待排序序列的最小值,若按从小到大排序,就不断地将每次的最小值放在序列前端,直到待排序序列的元素比较完为 阅读全文
posted @ 2017-11-03 14:58
JiaJoa
阅读(177)
评论(0)
推荐(0)
摘要:
插入排序是排序算法中一种经典的排序算法,该算法的时间复杂度最好时为O(n),最差时为O(n^2),空间复杂度为O(1),该算法也是一种稳定的排序算法。该种算法较适合大部分已有序时的排序问题。相比较而言,冒泡排序则更适合较小的序列排序。 该排序算法的思想是:不断地将当前数字插入到一个有序序列中,直到最 阅读全文
posted @ 2017-11-03 14:35
JiaJoa
阅读(153)
评论(0)
推荐(0)
摘要:
如何在时间复杂度为O(n)内找出数组中第二大的数字? 通过设置两个变量,一个保存最大值,一个保存第二大值,通过在找最大值的过程中,原来的最大值逐渐变为第二大值。一种实现代码如下(Java版): 阅读全文
posted @ 2017-11-03 12:26
JiaJoa
阅读(1022)
评论(0)
推荐(0)
摘要:
冒泡排序算法是一种较为简单的并且稳定的排序算法,该算法的时间复杂度最好为O(n),最差时为O(n^2),需要的空间复杂度为O(1)。 这里的算法稳定性是指 经过排序后,各元素仍然能保持它们在排序之前的相对次序,就称该算法是稳定的,反之,则为不稳定的。 例如,一组数排序前是a1,a2,a3,a4,a5 阅读全文
posted @ 2017-11-03 11:46
JiaJoa
阅读(5869)
评论(1)
推荐(0)
摘要:
给定一个整数数组,求取该数组的最大子数组之和,代码如下(部分来源其他博客,如有侵权,请私信): 阅读全文
posted @ 2017-11-03 11:16
JiaJoa
阅读(254)
评论(0)
推荐(0)