1.什麼是堆 堆是完全二叉樹。堆分爲最大堆和最小堆。最大堆是根節點大於等於左右子樹;最小堆是根節點小於等於左右子樹。存儲堆最常用的數據結構是數組:所以最大堆的表示:array[i] >= array[2 * i] …
标签:算法
Python的8大排序算法
本文用Python實現了插入排序、希爾排序、冒泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。 1、插入排序 描述 插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有…
Fibonacci遞歸以及數組實現
說起Fibonacci數列,首先想到的就是遞歸算法了,這也是幫助理解遞歸算法比較經典的題目實現如下: public static int Fibonacci(int n) { if (n == 0) return 0; …
編程珠璣 第一章習題1
1.如果內存不緊缺,你將如果用一種語言(該語言可以使用庫來表示和排序集合)來進行排序。 a.c語言+qsort #include <stdio.h> #include <stdlib.h> int…
動態規劃----Amous_of_degrs
/* * 題目大意: * 求給定區間[X,Y]中滿足下列條件的整數個數:這個數恰好等於K個互不相等的B的整 * 數次冪之和。例如,設X=15,Y=20,K=2,B=2,則有且僅有下列三個數滿足題意: * 17 = 2^4…
基於行塊分佈函數的網頁正文抽取算法代碼實現
最近在在做一個與資訊相關的APP,資訊是通過爬取獲得,但是獲取只有簡單的信息,正文沒有獲取。所以在顯示的時候很麻煩,一個<a>標籤鏈到到別人的網頁,滿屏的廣告 ,還有各…
hdu1031Design T-Shirt
Design T-Shirt Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java…
使用 Redis 实现自动补全功能
自动补全也可以称为自动提示,类似于在百度搜索的输入框中输入一个字符,下面会提示多个关键词供参考。 假设: 输入 a,会自动提示 apple、application、acfun、adobe; 输入 ap,提示 apple、…
用Trie树统计以给定字符串为前缀的单词个数
#1014 : Trie树 时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道…
java解决topk问题
面试题中经常用到堆,这里总结一下。 方法一:对源数据中所有数据进行排序,取出前K个数据,就是TopK。 但是当数据量很大时,只需要k个最大的数,整体排序很耗时,效率不高。 方法二:维护一个K长度的数组a[],先读取源数据…
<<计算机科学概论>>一道题不是很懂,想和大家一起讨论一下
题目如下: 假设对于给定的n,有一个由2^n行、每行2^n列组成的正方形棋盘和一盒L型的硬片, 每个硬片恰好盖住棋盘上3个正方形。如果从棋盘中剔除任意一个正方形,那么 我们能够用硬片覆蓋整个棋盘吗?要求覆蓋时硬片既不重叠…
堆排算法实现
堆排,时间复杂度O(nlogn),空间复杂度O(1)。 #include<iostream> #include<algorithm> using name…