原创 Xshell連接Kali Linux失敗問題

首先你要知道kalilinux默認不允許root用戶遠程登錄,因此需要修改以下文件來達到目的: 如果你沒有修改文件則會一直是這種情況: 正題: 1.輸入: 2.找到這一部分: 3.修改爲並保存(:wq!): 4.重啓ssh

原创 大整數四則運算

存儲方式: 規定:整數的高位存儲在數組的高位,整數的低位存儲在數組的低位。 例如:235813,則d[0]=3,d[1]=1,d[2]=8...此方式以此類推。 但注意:通常輸入爲字符串str[0]='2',str[1]='3',str[

原创 C實現輾轉相除法

目標:求最大公約數 方法:利用歐幾里得算法(輾轉相除法) 思路:如果b=0,計算結束,a就是最大公約數否則,計算a除以b的餘數,讓a=b,而b=餘數;回到第一步 。   非遞歸: #include<stdio.h> int main()

原创 素數的高效算法

素數最簡單的判斷方法是採用枚舉,複雜度爲O(n)。(這裏不作解釋) 這裏將介紹下列幾點: 1)素數判斷,複雜度爲O(√n)的原理及代碼。 2)素數表的獲取。 3)更爲高效判斷素數的"篩選法"。 (一)素數判斷 這裏介紹複雜度爲O(√n)的

原创 皇帝守財奴問題

皇帝不是窮人,在守財奴之中也有窮人,所以,有一些_____並不是_____. a.皇帝,皇帝 b.守財奴,守財奴 c.守財奴,皇帝 d.皇帝,守財奴 解答: p:這個人是皇帝 q:這個人是窮人 r:這個人是守財奴 皇帝不是窮人:p->~q

原创 sqrt()基礎

注意sqrt()傳入的參數應該爲double類型 並且返回的也是double類型。 int sqr=(int)sqrt(1.0*n);

原创 printf()格式

%3d    表示輸出3位整型數, 不夠3位右對齊 %9.2f  表示輸出場寬爲9的浮點數, 其中小數位爲2, 整數位爲7, 不夠9位右對齊(這時候小數點算一位)。例:1.4-->_ _5.1 %8s   表示輸出8個字符的字符串, 不夠

原创 希爾排序

希爾排序也是基於插入排序的一種策略,兩個代碼相似 插入排序: #include <stdio.h> int main(){ int a[]={1,10,5,3,8,0}; for(int i=1;i<6;i++){ int te

原创 快速排序時間複雜度和不穩定性

這裏提供講得超級清楚明白的視頻!!!力薦排序視頻(這個都還看不懂就別學了) 提供源代碼,然後這裏只討論快速排序不穩定性和時間複雜度的問題。 源代碼: #include <stdio.h> //劃分 int Partition(int

原创 隨機數rand()

只需知道產生隨機數需要加上“srand((unsigned)time(NULL))“語句,並且頭文件包括2個#include <stdlib.h>和#include<time.h>即可。 #include <stdio.h> #incl

原创 排序的疑惑

內部排序大致有: -插入式排序:直接插入排序,希爾排序 -交換式排序:氣泡法、快速排序法 -選擇式排序:直接選擇排序、錦標賽排序、堆排序 -歸併排序 -基數排序 什麼叫排序算法的穩定性? 如果排序算法,不會改變相同排序碼的數據元素的前後次

原创 2-路歸併排序(非遞歸)

此篇只說此方法排序的難點和易錯點。   #include <stdio.h> //合併過程 int maxn=1000; void merge(int A[],int L1,int R1,int L2,int R2){ int i

原创 圖解:2-路歸併排序(遞歸實現 )

 劃分過程: //劃分過程 void mergeSort(int A[],int left,int right){ void merge(int A[],int L1,int R1,int L2,int R2); //聲明 if

原创 動態ip與DHCP的疑惑

概念我就不說了,百度一大堆一樣的,這裏直接總結舉例說明。 問題(一):DHCP到底是什麼? 動態主機配置協議,有着DHCP服務器負責動態分配ip。 問題(二):通過哪些方法使用動態IP? 比如通過Modem、ISDN、ADSL、有線寬頻、

原创 算法筆記之木棒切割問題

<<算法筆記>>p134頁 問題分析: 此題的核心在於在滿足切割後木棒數目符合要求外,求木棒的長度最大取值,這裏很容易錯解成一個符合條件的長度,並不是最大長度。 那麼思考一下,這裏的木棒最大長度代表着什麼意思呢? 可以理解成 MaxL+