原创 二分查找的ASL公式及其數學推算

突然遇到二分查找的ASL公式,但是網上似乎推算不多,我來寫一下過程。 二分查找的ASL(平均查找次數)爲: 計算過程如下所示: 其中是ASL括號內式子 當n大於50時,ASL約等於。 打草稿寫的,比較醜,不要介意。

原创 python文檔打開方式

以瀏覽器方式瀏覽  以anaconda爲例,我在anaconda prompt終端下輸入 python -m pydoc -p 0 返回如下: 每一次的端口一般不一樣,然後把地址放到瀏覽器,再瀏覽 離線安裝包 在官網下載 xxx.wh

原创 開發板

LCD屏幕

原创 誤刪文件時恢復操作,debugfs和extundelete,

rm誤刪 rm不小心刪除了一個文件個c文件,關鍵這個文件我寫了一個下午了,然而手賤誤rm掉了,現在我很厭惡rm命令,這個鬼東西。。。 解決方法: 1.0 debugfs 對於ext2文件,可以使用debugfs命令工具,然而我的ubutn

原创 【踩坑】anconda3下載lightgbm包出現無法下載問題

UnavailableInvalidChannel: The channel is not accessible or is invalid. channel name: pypi/simple channel url: htt

原创 三種方法reverse字符串

1.自己編寫函數,不調用庫函數 首先當然是自己寫函數實現啦,不調用庫函數來反轉 #include <iostream> #include <string> using namespace std; void reverse(string

原创 【踩坑】關於解決ubuntu18環境下安裝LAMP時無法安裝phpmyadmin

1.何爲LAMP linux+mysql+php+apache2的簡稱。我在linux環境下搭建apache2服務器,同時安裝php7,mysql,還有其他依賴的包。我將我以前設計的某個簡單網頁index.html放在/var/www/i

原创 (offsetof宏、container_of宏)由結構體/類的實例的一個成員的地址,獲取該結構體/類的實例的地址

這兩個宏的源代碼如下,大家用到的使用的一個方法是可以直接複製到自己的代碼中使用。 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #define contai

原创 利用多種方法(聯合體union,指針,強制轉換)測試機器大小端

聯合體Union的特點 所有變量共用一段存儲空間,以最大的成員變量確定存儲空間 聯合體的成員不管是在哪個架構上默認都是從低地址開始存儲的 以下3種方式我都用main函數來寫,其實幾種方式可以封裝成一個返回值爲bool的函數,以便利用。 法

原创 去掉重複的字符,比如 google,輸出:gole(華爲筆試題)

這裏會不定期更新新的算法,若有新的算法實現便可以更新 以兩個空間來存儲字符串 #include<stdio.h> void delsame(char *o, char *n){ int i=0,j=0,k=0;

原创 輾轉相除法求最大公約數和最小公倍數(C語言)

1.輾轉相除法原理(求最小公倍數) 設有兩個整數a,b,而且a>b;那麼有 a和b的最小公約數也就是b和r(1)的最大公約數,同理可以推理到r(n)和q(n+1)的最大公約數Max{q(n+2),r(n+1)}就是a和b的最大公約數,也

原创 兩個數字交換不用第三個值(法1:用加法運算,法2:用異或運算)

兩個數字交換而不用第三個值 本idea源於TCL面試題目,設有a,b兩個值,交換他們,不得藉助第三個值 法1:藉助加法(減法也行) 求得a+b的和sum,當然這裏sum我不是想設立第三個值sum,是直接賦給a,然後b=a-b,a=a-b;

原创 實現strcat函數,assert宏(斷言宏)使用介紹

strcat函數的實現代碼如下: char* MyStrcat(char *dst, const char *src) { assert(dst != NULL && src != NULL); char *temp

原创 一些linux下奇淫技巧or小技巧or小知識彙總(不斷更新)

1. linux如何在終端打開一個pdf文件(即調動document viewer打開) xdg-open xxx.pdf xxx.pdf爲你所想打開的pdf文檔。 2.linux如何的ulimit命令(如何查看linux下的進程能夠打

原创 實現一個單鏈表的反轉reverse,返回新的頭節點

1.鏈表的數據結構 typedef struct node{ int data; struct node* next; } node; 2.實現思路 如下,有3個指針,pre,cur,last i.開