插入排序演算法:
ex: 8 9 21 6 1
1. 1 9 21 6 8
2. 1 6 21 9 8
3. 1 6
8 9 21
4. 1 6
89 21
5. 1 6
89 21
歸併排序演算法:
ex: 8 9 21 6 1
1. [
8 9] [
21 6 1]
2. [
8 9][
21][6 1]
3. [
8 9] [
21][1 6]
4. [
8 9] [
1 6 21]
5.
[1 6 8 9 21]
二分查詢演算法:
ex:1 2 3 4 5 6
button up
find 2: [1 2 3] [4 5 6] 3>=2 成立 繼續查詢左邊 05
[1 2] [3] 1>=2 不成立 繼續查詢右邊 01
[2] 2>=2 成立找到位置 00
c**:
#include "stdio.h"
// 演算法導論
// 插入排序演算法
void insertsort(int* ninput, int nnum)
} ninput[nkey] = ninput[ni];
ninput[ni] = ntemp; }}
//歸併排序演算法
int mergesort(int* ninput, int nnum)
else if(nnum == 2) }
else
while(ni < nnum/2)
noutput[nk++] = ninput[ni++];
while(nj < nnum)
noutput[nk++] = ninput[nj++];
for (int i=0;i= nup)
else }
void main()
while((ntemp = getchar()) != '\n');
//insertsort(ninput, nnum);
mergesort(ninput, nnum);
printf("排序結果:\n");
for (ni = 0; ni < nnum; ni ++)
printf("%d ",ninput[ni]);
//二分查詢演算法
int nbutton = 0;
int nup = nnum-1;
int nkey;
printf("\n請輸入要查詢的數字:\n");
scanf("%d",&nkey);
printf("你要找的數為第%d個數。\n", 1 + binarysearch(ninput, nkey, nbutton, nup));
}
乘方問題:輸入兩個數n,x 計算 x^n.
採用遞迴的方法
if n是奇數 返回 x*x^(n-1);
else n是偶數 返回x^(n);
**:
//演算法導論
//遞迴演算法學習
#include // 計算nnum的ncount次乘方
int powernum(int nnum, int ncount)
int main()
} printf("結果為:%d 。",(ncount%2==0)?powernum(nnum,ncount):nnum*powernum(nnum,ncount-1));
}
演算法導論學習1
第一章 演算法在計算中的作用 演算法的定義 簡單的說就是定義良好的計算過程,由輸入得到輸出!演算法的作用 應用非常廣泛,許多問題都涉及到演算法!演算法的重要性 是否擁有紮實的演算法知識和技術基礎,是區分真正熟練的程式設計師與新手的一項重要特徵。第二章 演算法入門 學習演算法的目的,不僅僅是很快理解演...
演算法導論學習2
一般的,對於演算法來說,重點關注的是對演算法的時間和空間度量,也就是時間複雜度和空間複雜度。演算法所需要的時間與輸入的規模同步增長的,而時間複雜度就是衡量演算法執行的基本運算元的乙個函式。對於插入排序來說,當需要排列的陣列分別為順序排列和逆序排列時,演算法的時間複雜度是不一樣的。根據演算法執行的每一...
演算法導論 學習問題
演算法導論 裡的counting sort,用c 實現有問題 include include using namespace std void counting sort vector a,vector b,const int k delete c int main for auto index c...