原创 二維數組 C語言優先級記憶Tips

引入: 一維數組的定義: 動態創建一維數組 :int * arr=(int * )malloc(10* sizeof(int)); 1.二維數組的定義: 如創建3行4列的數組 第一種方法: int main() {

原创 C語言基礎知識之一

1.基礎知識 (1)1字節=8個二進制位,1K=1024字節,1M=1024K,1G=1024M 1個字節=2個十六進制字符 HEX hex 十六進制 DEC

原创 C語言 求素數、排序算法

一、素數 1.從2到n-1之間依次檢查是否有n的因數 題目:判斷一個數是否是素數 bool Isprimer(int n) { for(int i=2;i<n;i++) { if(n % i==

原创 C語言基礎知識之二

1.switch是多分支選擇語句 switch(整型表達式) { case 常量表達式1 : 語句塊1;break; case 常量表達式2 : 語句塊2break;

原创 C語言 多級指針 解引用

1.解引用 int main() { int a = 10; int b = 20; printf("%d %d\n",a,b);//10 20 int *p = &a;//p裏保存a的地址 *p = 100;//對p解引用,

原创 排序算法總結(一)

排序方法分爲兩大類:內部排序和外部排序 內部排序分爲插入排序、選擇排序、交換排序、歸併排序、基數排序 1.插入排序 將一個記錄插入到已排好序的有序表中,從而得到一個新的、記錄數增1的有序表。 此處採用不用哨兵位的方法: vo

原创 在C和C++中NULL的區別

1.在c和c++中特定指針與通用指針相互賦值的問題 特定指針 如:int ,char ,float * 通用指針 如:void* int main() { int a=10; int *p=&a; char b='y

原创 C語言基礎知識之四

遞歸 C語言的特點之一就是允許函數的遞歸調用。 遞歸前進段,使問題不斷縮小。 但棧的空間有限,遞歸消耗內存大 (1)遞歸法求斐波那契,引用遞歸最失敗的例子,可能會導致棧溢出 int Fabonacci(int n) {

原创 中綴 前綴 後綴表達式 相互轉換

1.中綴表達式:便於人看 2.前綴表達式(波蘭式):運算符在前面,運算數在後面 3.後綴表達式(逆波蘭式):運算數在前面,運算符在後面 中綴- - - ->前綴: 優先級先乘除再加減,入棧方向從右往左,棧外的符號想進棧,棧內

原创 C語言基礎知識之五

函數指針 int *a; //定義變量,a是整型指針變量 int a(); //定義函數,a是函數,返回值爲int int * a(); /定義函數,a是函數,返回值爲int* int *a[10];

原创 C語言基礎知識之三

時間複雜度與空間複雜度 1.時間複雜度 T(n)=O(f(n)) 只保留最高項、不要係數 (1){++x;s=0;} O(f(n))=O(1) (2)for 1層循環 O(f(n))=O(n) (3)for 2層循

原创 C語言習題

1.假設在n進制下,下面的等式成立,567*456=150216,則n的值是() A.9 B.10 C.12

原创 八大排序之 歸併 直接插入 希爾排序

(1)歸併排序 思想:先讓一個元素有序,再讓兩個元素有序,再讓4個元素有序……,最後總會全部有序。 時間複雜度:平均 O(nlogn) 最好 O( nlogn) 最壞 O(nlogn) 空間複雜度:O(n) 穩定性:穩定

原创 C語言的數組和STL的vector的互相轉換

折騰了好久這個數組和vector的轉換,今天終於弄明白了。。。 1.數組arr轉vector int arr[]={1,2,3,4,5,6}; int len = sizeof(arr)/sizeof(arr[0]); v

原创 單鏈表面試題總結(一)

首先是鏈表的結構 struct ListNode { ListNode(int x):mval(x),pnext(NULL){} int mval; ListNode * pnext; }; 初始化 void I