基礎演算法整合(1)

2021-10-06 17:30:42 字數 2629 閱讀 7273

在資料結構與演算法中提到了很多的演算法,如折半查詢,快速查詢,歸併排序等等,熟悉這些演算法不能說讓我們計算能力提公升,但其中的邏輯思維與解決問題的方式卻值得我們去**。

本來打算把一些常用的演算法整合起來一次發完,但是**量有點大,我大概瀏覽都頭昏,所以決定分兩部分分享給大家。關於這些演算法的邏輯我基本都標有注釋,話不多說上**~

標頭檔案.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...