今天完成的是最小栈和有效括号的题最小栈要求是完成一个支持push top pop操作的,并能在常数时间内完成检索最小元素的栈。支持push top pop操作的栈并不难,但是常数级的查找是很困难的。通常的查找都是需要先排序,冒泡、插入和选择排序时间复杂度都是n2,快排的平均时间复杂度是logn。如果 ...
分类:
其他好文 时间:
2019-08-04 10:50:03
阅读次数:
105
选择排序(擂台排序): 3.有参且有返回值。 调用:数据类型?变量名=方法名(实参列表); 方法的递归 方法内部调用自己 ...
分类:
编程语言 时间:
2019-08-02 22:22:52
阅读次数:
122
思路: 选择排序法是一种非常直观的算法,它会在计算每个计算步骤中选出一个最小值,进而完成排序。 模板: 时间复杂度: 由于选择排序法会直接交换两个不相邻的元素,所以属于不稳定的排序算法。 然后再来看看选择排序法的复杂度。假设数据总数为N,那么无论在何种情况下,选择排序法都需要进行(N - 1) + ...
分类:
编程语言 时间:
2019-08-02 16:33:22
阅读次数:
166
稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。 冒泡 选择 选择排序的思想是将序列分为有序和无序两个部分,不断从无序序列中选择最小的增加到有序序列中,这样,序列就从小到大排列整齐。 插入排序 插入排序原理是将当前元素与前面的元素比 ...
分类:
编程语言 时间:
2019-07-27 15:41:20
阅读次数:
127
一、选择排序法 简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 for (int i = 0; i < arr.length - 1; i++) { ... 2 简单插入排序在最好情况下 ...
分类:
编程语言 时间:
2019-07-25 19:17:38
阅读次数:
105
三 ,选择排序 从算法逻辑上看,选择排序是一种简单直观的排序算法,在简单选择排序过程中,所需移动记录的次数比较少。 1,基本思想 选择排序的基本思想:比较+交换 在待排序的一组数据中,选出最小(最大)的一个数与第一个位置的数交换,然后在剩下的数中,再找最小(最大)的数与第二个位置的数交换位置, 依次 ...
分类:
编程语言 时间:
2019-07-23 20:12:32
阅读次数:
172
冒泡排序:从无序区通过交换找出最大元素放到有序区前端。 选择排序:从未排序序列中找到最小(大)元素,存到已排序序列的起始位置。 插入排序: 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,将该元素移到下 ...
分类:
编程语言 时间:
2019-07-22 22:45:25
阅读次数:
156