原创 單片機外部中斷應用

#include "STC/STC15F2K60S2.H" #define uchar unsigned char sbit K=P3^2; sbit BELL=P4^5; sbit Relay=P5^5; //延遲

原创 使用c++容器遍歷時用erase()刪除,出現死循環問題

先說下erase(),這個函數返回值是刪除元素的下一個迭代位置, for(vector<int> ::iterator it = data.begin();it != data.end();++it) { for(vector<int

原创 STL std::sort 源碼分析

轉載自http://feihu.me/blog/2014/sgi-std-sort/ 最近在看sort源碼,看到這篇博文很好,轉發作爲記錄,轉載侵權聯繫我刪除 背景 在校期間,爲了掌握這些排序算法,我們不得不經常手動實現它們,以加深對其的

原创 外部EEPROM,IIC總線和EEPROM通信技術

#include "STC/STC15F2K60S2.h" #include <intrins.h> //包含NOP空指令函數_nop_(); #define AddWr 0xa0 //寫數據地址,需要參考24c02芯片文檔

原创 DS18B20溫度傳感源代碼

本文是對DS18b20傳感器,驅動代碼的編寫 #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char s

原创 堆排序

堆排序算法,屬於比較排序的一種。 時間複雜度 O(nlogn),  空間複雜度O(1). 從這一點就可以看出,堆排序在時間上類似歸併,但是它又是一種原地排序,時間複雜度小於歸併的O(n+logn) 排序時間與輸入無關,最好,最差,

原创 STL vector map遍歷失效,順序容器和關聯容器遍歷時的erase()注意事項

1 區別 關聯容器(Associative Container):通過鍵(key)存儲和讀取元素的(vector,list,deque,stack,queue,heap,priority_queue,slist.) 順序容器(Sequen

原创 插入排序算法

對於插入排序算法來說,它是一種比較排序的一種。以後的博文中我會陸續介紹其餘的幾種排序算法。 時間複雜度O(n^2), 空間複雜度O(1) 排序時間與輸入有關:輸入的元素個數;元素已排序的程度。 最佳情況,輸入數組是已經排好序的數組,運行

原创 帶頭節點的雙向循環鏈表(數據結構)(帶有遍歷)

數據結構中雙向循環鏈表,僅供參考/*****************帶頭節點雙向循環鏈表***************/ #ifndef Double_ #define Double_ #include <iostream> #inc

原创 二次探測再散列散列表 源代碼(數據結構)

二次探測再散列 /**********散列表**********/ #ifndef HashTable_ #define HashTable_ #include "Except.h" template <class E,class

原创 正向,反向,閃爍流水燈

單片機 中簡單的流水燈問題#include "reg52.h" void led_delay(void) { unsigned cha

原创 單片機,矩陣鍵盤掃描驅動

void Delay30ms() { unsigned char i,j; for(i = 0;i < 100;i++) for(j = 0;j < 100;j++); } /*****************

原创 單片機 電子時鐘 (4*4鍵盤掃描)按鍵 源代碼。

電子時鐘 鍵盤掃描代碼#include "STC/STC15F2K60S2.H" sbit SEGLE=P2^7; sbit DIGLE=P2^6;

原创 歸併(合併)排序

歸併排序,一種比較排序,通過對數組中的元素進行比較得出排序結果。 時間複雜度 O(nlogn), 空間複雜度O(n) +O(logn) 排序時間與輸入無關,最佳情況,最壞情況都是如此, 穩定。 原理: 可以將數組分成二組。依次類推,

原创 冒泡排序

冒泡排序屬於比較排序的一種。 時間複雜度O(n^2),  空間複雜度O(1),  穩定,因爲存在兩兩比較,不存在跳躍。排序時間與輸入無關,最好,最差,平均都是O(n^2)。 核心代碼: void bubbleSort(int aarr