原创 冒泡排序(C)

冒泡排序   記得當時學C語言時,對於冒泡排序,老師舉了一個挺生動的例子,到現在還記得,“重的往下沉,輕的往上冒,就像石頭丟入水中,石頭重往下沉,水泡輕向上浮,以此來形容冒泡排序”。算是非常形象了,下面就詳細描述下冒泡排序… 算法

原创 堆排序(大小根堆實現)

文章目錄堆排序堆的定義堆排序構造大根堆構造小根堆實現堆排序測試代碼算法複雜度 堆排序 堆排序的基本思想: 對於一組待排序數據,首先按堆的定義建立初始堆(大根堆或小根堆); 取出堆頂元素(最大或最小),將剩餘的元素繼續調整成新堆,

原创 Leetcode[141] 環形鏈表

題目描述 給定一個鏈表,判斷鏈表中是否有環。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。 示例 1: 輸入:head = [3

原创 棧的順序及鏈式實現

  本文從棧的定義開始,根據棧的兩種存儲結構,順序和鏈式,分別實現棧的基本操作。 文章目錄棧的定義棧的基本操作順序棧實現鏈式棧實現 棧的定義   棧——只允許通過訪問它的一端來實現數據存儲和檢索的一種線性數據結構。即從固定一端插入

原创 直接插入排序(C)

直接插入排序 算法描述   所謂直接插入排序,就是從插入第1個數值開始(存在第0位),直至插入第n個數值(當插入第n個數值時,前面n-1個數值已經是排好序的),插入完第n個數值時排序結束。 假設:數據集合爲N, 有n個數據, i

原创 Shell—echo 打印彩色字符

shell打印個彩色的 HelloWorld,順帶記錄一下 echo -e 打印彩色字符的用法。 這類小技巧也可以用到實際項目中,讓命令行打印看起來好看點,關鍵字符明顯一些,代碼如下 function show() {

原创 Shell—獲取路徑操作(dirname $0 pwd)

Shell獲取路徑操作   在shell腳本中經常會看到$(cd $(dirname $0); pwd)、basename等操作,本文就來記錄一下 dirname、basename、pwd 的用法及組合使用。 pwd 用法 pw

原创 WIFI / BT 驅動之—設備樹配置

                                                                    WIFI / 藍牙模塊設備樹配置   AP6212 模塊在設備樹中配置如下: wirele

原创 Android adb工具的使用

                                                                        Android ---- adb工具的使用 ADB,即爲 Android Debug Brid

原创 Linux進程間通信—管道

前言:本篇主要總結介紹了Linux進程間通信方式之一管道技術。包括管道(無名有名)的基本概念、相關API的介紹、及Demo代碼示例。 目錄關於管道父子進程間的管道通信函數 popen 和 pcloseFIFO 命名管道 關於管

原创 C語言正則匹配IP實例詳解

  在實際開發中,作一些字符串的匹配時,使用正則表達式來過濾匹配,代碼更加簡潔、匹配更加精準。爲此,想到引入一個問題來總結記錄一下 Linux C 中正則表達式的使用方法。 文章目錄一、問題描述二、匹配 IP地址正則表達式三、正則

原创 Leetcode[21] 合併兩個有序鏈表

題目描述 將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 題解思路 迭代法:歸併排序的思想

原创 隊列的順序及鏈式實現

文章目錄隊列定義隊列基本操作順序隊列實現鏈式隊列實現初始化鏈式隊列元素入隊元素出隊測試代碼循環隊列參考文章 隊列定義   隊列的工作原理和現實中的隊列完全一致,比如排隊上車,排前面的先上車,排後面的後上車。隊列只支持兩種操作,入隊

原创 RTC驅動調試

本文記錄之前做驅動移植工作時調試RTC的一些總結,Platform: RK3368    OS: Android 7.1  RTC:hym8563   RTC核心文件 /drivers/rtc/class.c 該文件向linux設備模型核

原创 從頭擼一個單鏈表

@醉裏挑燈看劍,夢迴吹角連營   最近在學習單鏈表時,對於單鏈表的頭節點指針的創建,以及如何給一個鏈表存入數據,這塊理解不是很到位。雖然明白鏈表的基本操作,創建、插入、刪除、索引,但用C實現還是遇到一些問題難以理解,故寫一些代碼進