原创 LinuxC/C++編程(10)—socket本地通信

直接貼代碼。 先介紹一下socket本地通信和網絡通信的不同之處:domain不一樣,sockaddr不一樣。 本地通信中,socket()的第一個參數爲AF_UNIX,sockaddr爲sockaddr_un(un代表UNIX)類型;

原创 linux系統下用pyenv安裝python

很煩,奇奇怪怪的東西很多,基本是不懂就靠谷歌和SO . 先是安裝pyenv,過程如下: 1  安裝pyenv      (1) 選擇安裝到$HOME/.pyenv目錄(但你可以在某處安裝其他)。    git clone https

原创 調整數組順序使奇數位於偶數前面

#include <iostream> using namespace std; inline bool IsOdd(int *a) { return *a % 2 == 0; } void Sort(int a[], int le

原创 校招

紮實的基本功和寬闊的視角是校園招聘考察的最重要因素。

原创 最差情況爲線性時間的選擇

這個算法寫了我好久,在這裏記一下。 算法的原理是利用中位數來作爲劃分元素選擇第M小的元素,中位數需要遞歸自身來求得。算法的最優,平均,最差時間複雜度都爲O(N)。相對於隨機算法改善了最差時間複雜度。 和快排用了同樣的partition,但

原创 Linux編程中的坑——C++中exit和return的區別

今天遇到一個坑,折騰了一天才把這個坑填上,情況是這樣的: 寫了段代碼,在main()函數中創建一個分離線程,結果這個線程什麼都沒幹就直接掛掉了,代碼長這樣: int main() { 創建一個分離線程(); return 0;

原创 閉包中引用循環變量的問題

今天在看Go的語法,突然想對比一下python和Go的閉包機制的區別。 假如閉包調用循環變量,在Go中的實現方法爲,循環中用一個新的變量保存這個循環變量的值,具體實現代碼如下: //Go package main import ( "

原创 基數排序

基數排序,是基於計數排序的穩定排序。對於元素的每一位進行排序,例如十進制的101,100,111從個位先計數排序,再十位計數排序,最後百位上計數排序。 當然也並一定是按十進制來進行排序,可以按任何進制進行排序。 時間複雜度爲O(k * n

原创 LinuxC/C++編程(2)—文件夾操作

Linux中文件和文件夾操作有所不同,這裏寫了個代碼,實現了以下幾個功能: 1 設置和顯示當前工作路徑; 2 顯示工作路徑下的子文件名稱;3 在工作路徑下創建一個新的文件夾; //============