在資料結構與演算法中提到了很多的演算法,如折半查詢,快速查詢,歸併排序等等,熟悉這些演算法不能說讓我們計算能力提公升,但其中的邏輯思維與解決問題的方式卻值得我們去**。
本來打算把一些常用的演算法整合起來一次發完,但是**量有點大,我大概瀏覽都頭昏,所以決定分兩部分分享給大家。關於這些演算法的邏輯我基本都標有注釋,話不多說上**~
標頭檔案.h
#pragma once
#includeusing namespace std;
class algorithm
;void algorithm::swap(int&a,int&b)//基本交換
void algorithm::bubblesort(int list, int n)//氣泡排序,list表示每個數的值,n表示個數;} }
}void algorithm::selectsort(int list, const int n)//選擇排序,list表示每個數的值,n表示個數
} }
} //遞迴方式要簡單很多,因為這個小專案內容比較多下次再單個講解遞迴是在說!
return -1;
}void algorithm::panlie(char* p, const int k, const int m) //排列組合
cout << endl;//結束並換行
} else
/* //a開頭的,後面跟著bc的所有排列: permutations(p, 1, 2);
swap(p[0], p[0]);
//b開頭的,後面跟著ac的所有排列: permutations(p, 1, 2);
swap(p[0], p[1]);
//c開頭的,後面跟著ab的所有排列: permutations(p, 1, 2);
swap(p[0], p[2]);
*/ }
}void algorithm::algorithmmenu()
主函式.cpp
#include#include"algorithm.h"
using namespace std;
int main()
; //這裡就不搞成動手輸入了,要改來這裡改!
pid.bubblesort(a, 10);//呼叫氣泡排序
cout << "排序後:" << endl;
for (int k = 0; k < 10; k++)
cout << endl;
system("pause");
system("cls");
break;
} case 3:
; pid.bubblesort(a, 10);//呼叫選擇排序
cout << "排序後:" << endl;
for (int k = 0; k < 10; k++)
cout << endl;
system("pause");
system("cls");
break;
} case 4:
; int 結果;//在陣列的位置;
int num ;
cout << "請輸入要查詢的數(0-9):" << endl;
cin >> num;
結果 = pid.sunlookup(a, 10, num);//呼叫順序排序
if (結果 == -1)
else
system("pause");
system("cls");
break;
} case 5:
;// 注意:陣列是有序的排列!
int 結果;//在陣列的位置;
int num ;
cout << "請輸入要查詢的數(0-9):" << endl;
cin >> num;
結果 = pid.zheban(a, 10, num);//呼叫二分查詢
cout << 結果 << endl;
system("pause");
system("cls");
break;
} case 6:
case 0:
cout << "欲窮千里目,更上一層樓" << endl;
cout << "希望此次你有所收穫!" << endl;
system("pause");
system("cls");
return 0;
break;
default:
cout << "輸入有誤,請從新輸入" << endl;
system("pause");
system("cls");
break;
} }
return 0;
}
執行結果如下:
學習演算法能讓我們更熟練的操作**與解決常見的邏輯問題,提公升我們的思維能力。願這篇文章能對你有所幫助。
演算法基礎1
概念 資料結構 data structure 儲存資料的不同方式 計算機作為一門工程學科,容易理解,做出東西來,比死板的背概念要重要的多。什麼是演算法?針對同乙個問題,不同的解決方法 比如從1到100求和,可以從1到100累加,也可以1 100 乘以50 如何測算演算法的優劣?時間測算 完成同樣的結...
1演算法基礎
什麼是 stl?stl standard template library 是 c 標準模板庫,裡面提供了大量模板。佇列 先進先出 載入庫 include queue 申明 queue type name queue中元素在記憶體中不一定連續。q.push x 向佇列 q 末尾加入元素 x o 1 ...
演算法基礎 遞迴(1)
遞迴的基本概念乙個函式呼叫其自身,就是遞迴。例1 求n 的遞迴函式 int factorial int n 遞迴的作用 替代多重迴圈 解決本來就是用遞迴型式定義的問題 將問題分解為規模更小的子問題進行求解 例2 漢諾塔問題 void hanoi int n,char src,char mid,cha...