数据结构和算法
一片枫叶o
凡心所向,素履所往。生如逆旅,一苇以航。
展开
-
算法排序
1、冒泡排序int a = [5,2,9,3,1,7,6,8];// 一共循环多少轮for(int i = 0; i < a.length - 1; i++){ // 每一轮中做替换 for (int j = 0; j < a.length - 1 - i; j++) { int next = j+1; if (a[j] &...原创 2020-03-18 16:00:27 · 133 阅读 · 0 评论 -
数据结构与算法-设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。分析:无论使用链表还是数组实现的栈,push和pop操作的时间复杂度都是O(1)。所以,难点在于实现min使其时间复杂度也是O(1)。高级数据结 构的斐波那契堆就是通过一个指向最小元素的指针来实现min函数的,并保证了其时间复杂度为O(1)。因此,该堆栈需要新增一个转载 2015-06-10 12:02:13 · 522 阅读 · 0 评论 -
数据结构与算法-求子数组的最大和
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。分析:本题最初为2005年浙江大学计算机系的考研题的最后一道程序设计题,在2转载 2015-06-10 12:16:46 · 461 阅读 · 0 评论