原创 八大排序算法-歸併排序

基本思想 歸併(Merge)排序法是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分爲若干個子序列,每個子序列是有序的。然後再把有序子序列合併爲整體有序序列。 歸併示例: 合併方法 設r[i…n]由兩個有序

原创 Linux 硬鏈接和軟連接的區別

(1)軟鏈接可以跨越文件系統 ,硬鏈接不可以 。實踐的方法就是用共享文件把windows下的aa.txt文本文檔鏈接到linux下/root目錄下 bb,cc . ln -s aa.txt /root/bb 鏈接成功 。ln a

原创 八大排序算法-shell 排序

基本思想 先將整個待排序的記錄序列分割成爲若干子序列分別進行直接插入排序,待整個序列中的記錄“基本有序”時,再對全體記錄進行依次直接插入排序。 操作方法 選擇一個增量序列t1,t2,…,tk,其中ti>tj,tk=1; 按

原创 MySQL常用的索引

索引用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式保存。如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表裏面的記錄數量越多,這個操作的代價就越高。如果作

原创 八大排序算法-堆排序

基本思想 堆排序是一種樹形選擇排序,是對直接選擇排序的有效改進。 堆的定義如下:具有n個元素的序列(k1,k2,…,kn),當且僅當滿足 時稱之爲堆。由堆的定義可以看出,堆頂元素(即第一個元素)必爲最小項(小頂堆)。 若

原创 二叉樹的創建和遍歷

概念和性質 樹的相關概念和性質 二叉樹的相關概念和性質 遞歸實現二叉樹的創建和遍歷 代碼 #include<stdio.h> #include<stdlib.h> typedef struct TreeNode{ i

原创 MySQL優化技巧

mysql 數據庫優化  包括  a.表的設計合理化(符合3NF)  b.添加適當索引(index[4種:普通索引 主鍵索引 唯一索引unique  全文索引])  c.分表技術(水平分割,垂直分割)  d.讀寫[寫:update/del

原创 GET和POST的區別

在講GET和POST區別之前我們需要先了解HTTP。 什麼是 HTTP? 超文本傳輸協議(HTTP)的設計目的是保證客戶機與服務器之間的通信。 HTTP 的工作方式是客戶機與服務器之間的請求-應答協議。 w

原创 八大排序算法-直接插入排序

基本思想 將一個記錄插入到已排序好的有序表中,從而得到一個新,記錄數增1的有序表。即:先將序列的第1個記錄看成是一個有序的子序列,然後從第2個記錄逐個進行插入,直至整個序列有序爲止。時間複雜度:O(n^2). 要點:設立哨兵,

原创 MongoDB

MongoDB簡介 MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB是一個介於關係數據庫和非關係數據庫之間的產品。是非關係數據庫當中功能最豐富,

原创 八大排序-快速排序

基本思想 1)選擇一個基準元素,通常選擇第一個元素或者最後一個元素, 2)通過一趟排序講待排序的記錄分割成獨立的兩部分,其中一部分記錄的元素值均比基準元素值小。另一部分記錄的 元素值比基準值大。 3)此時基準元素在其排好序後的正

原创 RESTful

一種軟件架構風格,設計風格而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件可以更簡潔,更有層次,更易於實現緩存等機制。 簡單來說,一旦定義好了要暴露的資源,你可以定義資源上允

原创 PHP獲取用戶的真實IP

前幾天面試的時候被問到通過$_SERVER['SERVER_ADDR']獲取到的IP地址會有什麼問題?那肯定是“如果用戶通過的是 代理 獲取不到真正的ip地址”。還好面試官沒有進一步追問。那如何獲取用戶的真實IP地址呢? 分析

原创 八大排序算法-冒泡排序

基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。 代碼 #incl

原创 NoSQL是什麼?

定義 對於不瞭解NoSQL的人都會認爲NoSQL爲No SQL,即不是SQL。但是這種理解是錯誤的,NoSQL應該是Not OnlySQL,翻譯過來爲不僅僅是SQL。從這個翻譯中我們可以看出來,NoSQL仍然還是SQL。 NoS