Java:排序
OliverZang
这个作者很懒,什么都没留下…
展开
-
Java: 排序 - 插入排序
插入排序就是依次摘出数组中的数,向前插入在比他更小或相等的数后,后面的数依次向后移一位,直到数组每一个数完成摘出插入。(有点像悲观理扑克牌的方法)。对于长度n的数组,需要最多n-1次遍历,每一次从顺序队列后开始遍历,直到顺序队列长度为n。插入排序逻辑很简单,但是代码逻辑比冒泡与选择相比稍复杂。外循环从第二个数开始,依次向数组前插入。内循环第i个数需要插入,认定i之前的数都是顺序的,那么...原创 2018-12-08 17:07:35 · 207 阅读 · 0 评论 -
Java: 排序 - 选择排序
选择排序对于n个数的数组,需要n-1次遍历,时间复杂度n2,空间复杂度1。n个数的数组,升序选择排序过程如下:第一次遍历,假设映射数组最小值的下标minIndex为下标0,从下标1到下标n-1作为排序队列,轮流与下标min比较映射值,每当min的映射值大于对方,则min的下标被对方下标覆盖。最后min下标的值与下标0互换,保证下标0映射当前排序队列的最小值。…第m次遍历(m<n-1...原创 2018-12-07 23:36:27 · 132 阅读 · 0 评论 -
Java:排序 - 冒泡
对于n个数的数组升序排序,最多遍历n-1次,第一次遍历下标0到n-2,将每次访问的下标m和m+1的值比较,m大则双方互换位置,即下标n-1确认是最大值。第m次遍历下标0到n-m,直到每次不发生交换,则缺认排序完成对于n个数的数组降序排序,…,m小则互换位置,…直到不发生交换,完成冒泡排序法,时间复杂度为n2,空间复杂度为1,排序后相同元素位置不变,属于稳定排序。 public static...原创 2018-12-07 18:25:18 · 217 阅读 · 0 评论 -
Java:递归 - 用递归实现冒泡,选择排序
不能用for/while,使用递归实现冒泡和for/while一样,只是迭代的参数都要写成传参否则会丢失状态下面的代码loop表示每次的冒泡遍历次数,执行时依次递减。递归冒泡代码:/* * a recursive way of bubbleSort *@param arr *the input array of int *@param i *the curre...原创 2018-12-10 16:58:59 · 1404 阅读 · 0 评论