導航:首頁 > 源碼編譯 > 蠻力演算法

蠻力演算法

發布時間:2022-01-27 03:24:01

Ⅰ 求演算法中蠻力法的經典例題,越多越好!!!謝謝諸位提供者了,小女子感激不盡。

蠻力法是什麼演算法?你是計算機科學與技術專業的嗎?這個演算法是演算法與數據結構這門課程中的演算法嗎?

Ⅱ 蠻力演算法設計

就和人們提出1+1為什麼等於2一樣,看似大家都知道的常識

Ⅲ 簡要敘述蠻力法,基本常用的例子有哪些

蠻力法(brute force method,也稱為窮舉法或枚舉法)是一種簡單直接地解決問題的方法,常常直接基於問題的描述,所以,蠻力法也是最容易應用的方法。

蠻力法特性:
(1)理論上,蠻力法可以解決可計算領域的各種問題。

(2)蠻力法經常用來解決一些較小問規模的問題。

(3)對於一些重要的問題(如排序、查找、串匹配),蠻力法可以設計一些合理的演算法,這些演算法具有實用價值,而且不受輸入規模的限制。

(4)蠻力法可以作為某類問題時間性能的下界,來衡量同樣問題的其他演算法是否具有更高的效率。

查找問題中使用蠻力法。

順序查找:

是指在查找集合中一次查找值為k的元素,若查找成功,則給出元素在查找集合中的位置;若查找失敗,則給出失敗信息。

【想法】:將查找集合放在一維數組中,然後從數組的一端向另一端逐個將元素與帶查找值進行比較,若相等,則查找成功,給出該元素在查找中的序號;若整個數組檢測完仍未找到與帶差值相等的元素,則查找失敗,給出失敗標志0。我們在查找過程中還要注意下標是否越界的問題。

演算法的實現方法一:

int SeqSearch1(int r[] ,int n, int k) //數組r[1] r[n]中存放查找集合。
{
int i = n;
while(i>0 && r[i]!k) //注意檢測比較位置是否越界。
{ i--; }

return i;
}

上述演算法我們每次都要去判斷數組的下標是否越界,為了避免在查找過程中每一次比較前都要判斷查找位置是否越界,可以設置觀察哨,即將待查值放在查找方向的「盡頭」處,則比較位置i至多移動到下標0處。

Ⅳ 計算a的n次方,蠻力計算的方法復雜度為O(n),有什麼方法可以減小演算法復雜度

不知道下面的程序復雜度是否滿足條件,樓主可以考慮更進一步b=a*a*a或者更大
#include<stdio.h>
#include<math.h>

long aa(int a,int n)
{
int i,b;
if(n==0)
return 1;
else if(n==1)
return a;
else
{
b=a*a;//b等於a的平方
for(i=1;i<n/2;i++)
{
b*=b;
}
if(n%2==1)
a*=b;//如果n為奇數結果*a
else a=b;
}
return a;
}
int main()
{
int a,n;
printf("please input a,n:");
scanf("%d%d",&a,&n);
printf("%ld\n",aa(a,n));
return 0;
}

Ⅳ C語言編程,設計一個蠻力演算法,第13題

給個順橫向的例子
for (x = 0 ; x < map_cx ; x++)
for (ifrom = 0 ; ifrom <map_cx;i++)
for(ito =ifrom;ito<map_cx;ito++){
if (isac(map ,ifrom,ito ,strlist ,buff))
printf("%s\n",buff);
}

Ⅵ 演算法:蠻力法

《演算法設計與分析基礎》學習 --- 蠻力法 要重溫演算法思想,並以《演算法設計與分析基礎》這本書作為教材。該書每一章介紹一種演算法設計思想。今天從最簡單的開始寫起,打好基礎。以後再逐步深入,學習更深入的演算法。 蠻力法就是一種解決問題的最簡單最直觀的最容易理解方法,雖然它簡單,而且在實際應用中因為效率的原因可能不能派上用場,但是還是不能忽略它。正如書中作者所說,在解決小規模問題的時候也不失為一個方法,而且也是更復雜演算法的基礎。 一、選擇排序
以最簡單的思路解決排序問題,對於N個元素的數組,通過N次掃描數組,每次選擇出最小的元素放置到正確的位置,N趟掃描後即完成排序。 show sourceview source print? 01/* 02 蠻力法-選擇排序 03 將輸入數組排成非遞減數組 04 05 array:待排數組 06 n:數組大小,即[0,n-1] 07*/08void SelectionSort(int array[],unsigned int n) 09{ 10 int min; 11 for(int i=0;i<n-1;i++) 12 { 13 min=i; 14 for(int j=i+1;j<n;j++) 15 { 16 if(array[j]<array[min]) 17 min = j; 18 } 19 if(i!=min) 20 { 21 int temp = array[i]; 22 array[i] = array[min]; 23 array[min] = temp; 24 } 25 } 26}//SelectionSort
這是一個最差的排序方法,對於任何輸入都是 O(n*n)的時間復雜度。但是它的最大優點就是交換次數最少。 二、冒泡排序
又是一個經典的蠻力排序演算法。這里我僅僅對原始的冒泡做了點點改進,如果演算法已經排好序的話該演算法掃描一遍便完成排序。
show sourceview source print? 01/* 02 蠻力法-冒泡排序(稍微改進版) 03 將輸入數組排成非遞減數組 04 05 array:待排數組 06 n:數組大小,即[0,n-1] 07*/08void BubbleSort(int array[],unsigned int n) 09{ 10 int i=n-1; 11 int last; 12 while(i>0) 13 { 14 last = 0; 15 for(int j=0;j<i;j++) 16 { 17 if(array[j]>array[j+1]) 18 { 19 int temp = array[j]; 20 array[j] = array[j+1]; 21 array[j+1] = temp; 22 23 last = j; //記錄最近一次交換值的位置 24 } 25 } 26 i = last; 27 } 28}//BubbleSort
但是在最差的情況下,它還是O(n*n)的時間復雜度。 三、順序查找和字元串的蠻力匹配
順序查找,再簡單不過的查找演算法了,算是對蠻力思想的一種應用。以及字元串的蠻力匹配也是這樣的。

Ⅶ 蠻力排序演算法的實現與性能分析實驗小結怎麼寫

向右掃描,查找第一個關鍵字大於 temp.key 的記錄 */ if (i<j) R[j--]=R[i]; /* 交換 R[i]和 R[j] */ } while (i!=j); R[i]=temp; /* 基準 temp 已被最後定位 */ return i; } /* PARTITION */ void QUICKSORT(rectype R[ ], int s1, int t1) /* 對

Ⅷ 蠻力演算法解決0/1背包問題

排列組合,把所有情況列出來.. 這個估計是最暴力的解法了.. 2^n 的復雜度

閱讀全文

與蠻力演算法相關的資料

熱點內容
怎麼把安卓視頻傳到蘋果上面 瀏覽:79
手機拍鬼片用什麼app 瀏覽:640
爬山虎app是干什麼用的 瀏覽:505
有哪些寫給程序員的歌 瀏覽:49
成都市命令 瀏覽:993
建立系列文件夾 瀏覽:983
蘋果開機白屏帶文件夾問號 瀏覽:733
體驗服為什麼伺服器會關閉 瀏覽:41
酒店命令 瀏覽:750
中走絲線切割編程視頻 瀏覽:80
衣服壓縮袋手泵原理 瀏覽:714
通達信編程書籍 瀏覽:981
車用壓縮天然氣瓶閥 瀏覽:971
鞋的程序員 瀏覽:259
車的壓縮比是什麼意思 瀏覽:202
網站源碼怎麼傳到文件夾 瀏覽:914
海南壓縮機在哪裡 瀏覽:491
電腦文件夾清晰的文件結構 瀏覽:839
如何把蘋果手機的app轉到安卓 瀏覽:305
java同步並發 瀏覽:249