1、不用中間變數,用兩種方法交換a和b的值
// 1.中間變數
void swap(int a, int b)
// 2.加法
void swap(int a, int b)
// 3.異或(相同為0,不同為1. 可以理解為不進製加法)
void swap(int a, int b)
2、求最大公約數
/** 1.直接遍曆法 */
int maxcommondivisor(int a, int b)
}return max;
}/** 2.輾轉相除法 */
int maxcommondivisor(int a, int b)
return b;
}// 擴充套件:最小公倍數 = (a * b)/最大公約數
3、模擬棧操作
**#include
//保護全域性變數:在全域性變數前加static後,這個全域性變數就只能在本檔案中使用
static int data[1024];//棧最多能儲存1024個資料
static int count = 0;//目前已經放了多少個數(相當於棧頂位置)
//資料入棧 push
void push(int x)
//資料出棧 pop
int pop()
//檢視棧頂元素 top
int top()
//查詢棧滿 full
bool full()
return 0;
}//查詢棧空 empty
bool empty()
return 0;
}int main()
//出棧
while(!empty())
printf("\n");
return 0;
}
4、排序演算法
選擇排序、氣泡排序、插入排序三種排序演算法可以總結為如下:
都將陣列分為已排序部分和未排序部分。
1.選擇排序將已排序部分定義在左端,然後選擇未排序部分的最小元素和未排序部分的第乙個元素交換。
2.氣泡排序將已排序部分定義在右端,在遍歷未排序部分的過程執行交換,將最大元素交換到最右端。
3.插入排序將已排序部分定義在左端,將未排序部分元的第乙個元素插入到已排序部分合適的位置。
4.1、選擇排序
void selectsort(int *arr, int length) }}
}
4.2、氣泡排序
void bubllesort(int *arr, int length) } }
}
5、折半查詢(二分查詢)
折半查詢:優化查詢時間(不用遍歷全部資料)
折半查詢的原理:
// 已知乙個有序陣列, 和乙個key, 要求從陣列中找到key對應的索引位置
int findkey(int *arr, int length, int key) else if (key < arr[mid]) else
}return -1;
}
iOS面試題 一
圖中包含的設計模式 delegate 模式 notification kvo 觀察者模式 target action 命令模式 mvc 中介者模式 內建了策略模式 裝置並不在開發者賬號裡 有 些閃退,像ios10的時候,要我們加的那個訪問許可權,如相機的訪問,就是在plist 檔案 面加上.清 快取...
iOS面試題總結(一)
1.為什麼不能給類別category 新增成員變數?extension呢?2.iskindofclass 和 ismemberofclas區別?3.weak的實現原理 4.理解 self class 與 super class 5.ios中的記憶體管理機制 6.block如何訪問外部變數?下劃線 b...
iOS面試題 Swift篇(一)
swift是蘋果在2014年6月wwdc發布的全新程式語言,借鑑了js,python,c ruby等語言特性,看上去偏指令碼化,swift 仍支援 cocoa touch 框架 swift更加安全,它是型別安全的語言。swift容易閱讀,語法和檔案結構簡易化。swift更易於維護,檔案分離後結構更清...