原创 進程的基本控制

前言:整個操作系統都在圍繞進程這一概念具體展開,所以對於進程的控制就顯得十分重要,這篇文章主要講述以下幾點: 1. 進程創建 2. 進程退出 3. 進程等待 4. 進程程序替換 進程創建 在操作系統中,對於父子進程的概念非常

原创 立一個小小的flag

距離上次寫博客已經很久了,下個月也是我入職一週年了。 很久沒有沉下心好好寫一些文章,內心還有有點不安的。 準備接下來花點時間好好寫點東西,把工作學習中的事情記錄下來,希望對你我都有幫助。 17年還是大三的時候,每天都會堅持學習寫博

原创 初識python,編寫一個簡單的python程序

在ubuntu下安裝好了最新的python3.9,開啓學習python之旅。 在命令行輸入python進入交互模式: 交互模式下,你每輸入一行代碼,python解釋器就將這一行代碼轉換成機器碼來執行。 例如: 交互模式輸入100

原创 c++string類(淺拷貝,深拷貝,寫實拷貝的優點和缺陷)

前言 樓主現在大三,鑑於年後想找一個實習,故寒假在家複習一些學過的知識點,前幾天看到一篇關於string類的文章,細讀之後,發現我還是有許多遺漏的地方,經過這幾天的學習,想通過這篇文章,將有關string類的東西都記錄一下。 重點

原创 7. Reverse Integer

題目簡介: 給一個整型數,將它逆置過來: Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 1

原创 冒泡排序

冒泡排序(Bubble Sort)見名知意,就是從前至後依次比較相鄰的兩個數據的大小,將大的往後移動,這樣經過一次完整的比較和移動,就可以將序列中最大的一個數放置到序列的最後,這也就是它名字的由來,就像水裏的水泡一樣, 越往上浮越

原创 理解vfork函數

前言 vfork這個函數,起初是在fork函數沒有實現寫實拷貝機制的時候出現的一個東西。然而現在的fork的函數早已經支持寫實拷貝。 提到寫實拷貝就多說幾句,在操作系統中,創建一個子進程你就得給他分配進程所需的資源,如果每次創建

原创 Ubuntu下安裝最新的python,開啓學習python之旅

查看當前python的版本 python --version 下載python3.7 sudo apt-get install python3.7 如果想下載3.x的話,輸入python3.後連續按兩次tab,就會顯示當前可下載的

原创 實現最小棧

題目要求 實現一個棧,要求實現Push(出棧)、Pop(入棧)、Min(返回最小值的操作)的時間複雜度爲O(1) 首先針對這道題有多重解決方案。 1、定義兩個棧,一個正常棧,另一個棧的棧頂始終保存整個棧內的最小值。 思路如下:

原创 位圖

位圖(Bit Map)是一個數組的每一個數據的每一個二進制位表示一個數據,0表示數據不存在,1表示數據存在。 不好理解的話,由下面這道題來引出位圖的使用: 給出40億個不重複的無符號整數,沒排過序,給出一個無符號整數,如何快速判

原创 兩個棧實現一個隊列&兩個隊列實現一個棧

兩個棧實現一個隊列 實現思路: 定義兩個棧stack1,stack2。 stack1存放入隊列序列,stack2存放出隊列序列。 如果進行Push操作,直接對stack1進行操作。 如果進行Pop操作,stack2不爲空,直接對

原创 出棧的合法性檢測

對於一個給定的入棧順序,可能的出棧順序會有很多,但是肯定都要遵循棧“後進先出”的特點,那麼怎麼進行合法性檢測呢? 算法思想如下: 定義變量InIndex標記入棧序列的當前位置,定義OutIndex標記出棧序列的當前位置 對InI

原创 基礎I/O總結

引言 對於文件I/O,即打開文件,讀文件,寫文件這個應該都不太陌生,這篇文章會首先回憶一下C語言中的一些基礎I/O,進而引入到Linux下的文件I/O。 C語言中的文件I/O 打開文件 #include<stdio.h> FIL

原创 基數排序

基數排序(Radix Sorting)是一種與其他排序算法完全不同的排序方法,其他的排序算法都是通過關鍵字之間的比較和移動來完成的,而基數排序則不需要比較,而是採用一種多關鍵字的思想。 什麼是多關鍵字的思想呢? 給定一組數據,我

原创 九種常見排序的比較和實現

首先排序算法大的可以分爲: 關鍵字比較 非關鍵字比較 關鍵字比較 關鍵字比較就是通過關鍵字之間的比較和移動,從而使整個序列有序, 而關鍵字比較的算法,又可以像下面這樣劃分: 對於排序算法之間的比較,無異於時間複雜度和空間複