原创 java數據結構棧

棧的原則是先進後出,比如一堆摞起來的書,後放上去的會被最先拿到。 棧的特點是每次只允許訪問一個元素。 棧是一種抽象出來的數據結構,它的底層存儲依賴於數組和鏈表,下面列出它的兩種實現 public interface Stack <T>{

原创 MapReduce的Kmeans聚類算法

最近在網上查看用MapReduce實現的Kmeans算法,例子是不錯,http://blog.csdn.net/jshayzf/article/details/22739063 但註釋太少了,而且參數太多,如果新手學習的話不太好理解。所以

原创 java劃分算法

劃分算法的意思是將序列裏的值分成兩組,一組裏的每個值大於某個指定的值,另一組的每個值小於指定的值。 import java.util.Arrays; public class Partition { public static

原创 MapReduce的TopK統計加排序

Hadoop技術內幕中指出Top K算法有兩步,一是統計詞頻,二是找出詞頻最高的前K個詞。在網上找了很多MapReduce的Top K案例,這些案例都只有排序功能,所以自己寫了個案例。(求出前k個頻率最高的詞原本不需要排序,這裏想完全使用

原创 java希爾排序

希爾排序是建立在插入排序之上的 他是以每次以不同的步長將序列分組後對不同的組排序 如圖: 這裏的步長是4,排序完0,4,8後,再來排序1,5,9。2,6。3,7 如圖: 排序完後在進行依次這樣的排序,這次如果是以2爲步長的話,那麼第八

原创 java數據結構隊列

隊列類似於現實生活中的排隊。隊列是先進先出的原則,只允許在隊列頭部去除元素,隊列尾部添加元素。 下面是分別用數組和鏈表爲存儲結構實現的隊列 public interface Queue<T> { int size(); T

原创 java插入排序

插入排序適合序列中已經有部分數據是已經排序過的狀態。 int[] a = {222,44,11,63,84,24,53,123,25,98,76,34};挨個讀取數組a中的每個元素,將它與前面的數做對比,如果比前面的小就將前面的數向後移,

原创 Java二分法查找

在算法與數據結構中,二分法查找是一種最簡單的入門算法,它用於在已經排序好的序列中查找元素。 例子:{1,2,3,4,5,6,7,8,9,10}這樣的數組中找出元素10的索引。 如果用單純的for循環的話 public static in

原创 python選擇排序

def select_sort(list): for i in range(len(list)): position = i for j in range(i,len(list)): if list[position] >

原创 nginx安裝

官網當前最穩定的的版本是1.6.1,本教程以1.6.1爲例: 1,redhat和centos可以設置rpm源, RHEL 5RHEL 6RHEL 7CentOS 5CentOS 6CentOS 7        下載然後安裝上面的文件

原创 python冒泡排序

def bubble_sort(list): for i in range(len(list)): for j in (range(i,len(list))): if list[j] < list[i]: temp =

原创 java線程池框架源碼分析

相關類Executor,Executors,AbstractExecutorService,ExecutorService Executor:整個線程池執行者框架的頂層接口。定義了一個execute方法,整個線程執行者框架的核心方法。

原创 tomcat源碼Catalina

Catalina的作用是初始化各個組件,並開始啓動各個組件。 上文中介紹了Bootstrap是如何啓動Catalina的,現在來看看Catalina的作用: 1,Catalina通過Digester類加載

原创 nginx使用指南

1,運行nginx 可以運行nginx命令開啓nginx: nginx 如果nginx已經開啓了,可以運行nginx命令加-s 參數來控制nginx的運行 nginx -s signal signal的值: stop — 快速關

原创 Java算法快速排序

快速排序的原理:每次將序列以一個值爲界限分成兩組,再將得到的兩個序列分別以一個界限分成兩組變成四組這樣一直分下去。 int[] a = {11,222,44,63,84,11,24,53,123,25,98,76,34}; 第一步:以34