
数据结构
汐夜微凉
黎明升起,路在何方.
展开
-
实现一个栈,要求实现: Push(入栈)、Pop(出栈)、Min(返回最小值)的时间复杂度为O(1)
**实现一个栈,要求实现: Push(入栈)、Pop(出栈)、Min(返回最小值)的时间复杂度为O(1) 思路: 1.用两个数组实现 2.不在每次都入最小栈**1.P1.h#pragma once#include <stdlib.h>#include <stdio.h>/* ...原创 2018-07-27 14:52:24 · 353 阅读 · 0 评论 -
栈队列:使用两个栈实现一个队列
栈队列:使用两个栈实现一个队列思路: 1.入队列,是将数据放入栈1 2.出队列,是将栈1数据出栈后依次存入栈2,然后栈2进行出栈 这样就模拟了队列的 先进先出 思想1.Stack.h#pragma once#include <assert.h>#include <stdlib.h>#include <String.h&g...原创 2018-07-27 16:01:41 · 236 阅读 · 1 评论 -
“队列栈”:用一个队列实现一个栈
“队列栈”:用一个队列实现一个栈 出栈思路: 1.将队列的队头元素取出,保存在变量data中,然后Pop掉,再将data Push进队列 2.若队列有n个元素,则需要进行步骤1 n -1 次后,此时队头元素就为此队列最后进入的值1.Queue.h#pragma once#include <assert.h>#include <...原创 2018-07-27 17:27:27 · 1731 阅读 · 0 评论 -
排序算法(三):堆排序
1.Heap.classpackage cn.sort.heap;/** * 堆排序实现:升序排序 * @author LY * */public class Heap { /** * 打印数组 * @param arr * @param size */ public static void printArr(Inte...原创 2018-08-03 16:11:35 · 179 阅读 · 0 评论 -
排序算法(四):快速排序
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列时间复杂度: 最坏 O(N ^ 2)(如果数组是逆序的) 平均水平 O(NlogN) 空间复杂度: O(N) ...原创 2018-08-11 22:56:48 · 400 阅读 · 0 评论 -
Java实现七大排序
↵图片来自import com.sun.scenario.effect.Merge;public class Sort { private static void swap(int arr[], int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tm...原创 2019-07-08 13:17:04 · 317 阅读 · 0 评论