原创 (C語言) 有n個人圍成一圈,順序排號,從第一個開始報數(從1到3報數),凡報到3的人退出圈子,問最後最後留下的是原來第幾號的那位

有n個人圍成一圈,順序排號,從第一個開始報數(從1到3報數),凡報到3的人退出圈子,問最後最後留下的是原來第幾號的哪位。 其實有很多的算法來解決這樣的問題,這邊我採用的是數據結構中的隊列來解決這個問題。 具體思路是:每隔兩個(c

原创 用鏈表實現通訊錄 (Linux C)

編寫一個通訊錄軟件,有如下功能,1.增加 2修改 3刪除 4查詢 5列表 6退出,每個通訊錄項,包含姓名和手機號 函數接口API: #include <stdio.h> #include <stdlib.h> #include <

原创 用二分搜索 來檢測職工的信息。

在之前的寫的排序算法裏面可以用二分搜索的方式進行優化,這篇博客就暫且先介紹一下二分搜索。後續博客會繼續對插入排序進行優化 二分搜索的算法前提:必須是已經排好序的數組。 算法: 當begin == end時候,代表沒找到對應的數

原创 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制

首先先求出當輸入一個數n的時候,求出當前的數 int fn(int a,int n) { int tmp = a; while(--n) { a = a * 10 + tmp; } return a; } 接着

原创 排序(2) - 選擇排序

所有的排序都以升序爲例。考慮複雜度,考慮穩定性的情況。以及在原基礎上步步優化。 在上篇排序(1)的博客裏有提到過穩定性的問題。但是沒有做出解釋。在這邊解釋一下穩定性的問題。 排序前:5,1,3a,,4,7,3b 穩定的排序:1,

原创 徹底弄明白指針數組是啥

首先我們從字符串來引入: 1.一個字符串的引用: char * pStr = "today"; 其中的指針變量pStr指向字符串"today"的第一個字符‘t’的地址(即存值)。不管字符串有多長,pStr指針變量只存儲字符串的第

原创 排序(1) - 冒泡排序

所有的排序都以升序爲例。考慮複雜度,考慮穩定性的情況。以及在原基礎上步步的優化。 冒泡排序: 算法:從頭開始比較每一對相鄰元素,如果第一個元素比第二個元素大,就交換他們的位置。 舉例: void BubbleSort::sort

原创 將字符串“We Are Family!”,去除空格後打印出來。(WeAreFamily!)

將字符串去空格打印輸出 遍歷字符串,爲空格的時候就跳過直到就遇到結束符’\0’ void deleteblank(char str[]) { if(str == NULL) { return; } char * tm

原创 求最大公約數,最小公倍數算法

最大公約數和最小公倍數的算法 一般常見的算法有:求差判定法,歐幾里得算法,Stein算法。 這邊重點介紹歐幾里得算法,就是常說的輾轉相除法,是經典的求解最大公約數的算法。 輾轉相除法求最大公約數: 算法的基本思想是:假設 a >

原创 史上最強排序之休眠排序 C

看到一個段子:老闆要求一個程序員寫一個排序算法,於是剛寫完排序算法,就被開了。。" 到底是什麼詭異的排序算法呢??? 下面是我在Linux下用C語言寫的。在windows下面創建線程太麻煩了。 #include <stdio.h

原创 判斷計算機大小端模式的測試

大小端模式的測試 如果將任何類型的對象指針強制轉換爲指向任何char(signed char、unsigned char)類型的指針,其結果就是“指向對象的第一個字節”的指針。無論系統的字節次序結構如何,這裏所認定的第一個字節就

原创 手撕十大排序算法(未完)

各個排序算法分析與優化: (全部以升序爲例子) 1.冒泡排序: 算法:從頭開始比較每一對相鄰元素,如果第一個元素比第二個元素大,就交換他們的位置。 代碼演示: void test01() { int array[] = { 5

原创 單向鏈表接口與實現(C++)

單向鏈表接口與實現(已調試) 單項鍊表接口: class LinkedList { private: static class Node { public: int m_element; Node * next;

原创 動態數組的接口與實現(C++)

動態數組的接口與實現(已調試完成) 常用接口: class ArrayList { private: int m_size; int * m_element; int m_capacity; static const

原创 C/S架構服務器socket通信的簡單模型搭建

此程序代碼中不包含併發。併發服務器在後續博客陸續推出 程序框圖如下: server.c #include <stdio.h> #include <unistd.h> #include <sys/socket.h> #includ