【蛮力算法】数据结构与算法
生活随笔
收集整理的這篇文章主要介紹了
【蛮力算法】数据结构与算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
蠻力算法也稱為窮舉法或暴力法,它是算法設計中最常見的方法之一。蠻力算法的基本思路是對問題的所有可能狀態一一測試,直到找到解或將全部可能狀態都測試為止。
蠻力算法的概述
????????蠻力法是一種簡單、直接地解決問題的方法,通常直接基于問題的描述和所涉及的概念定義。
蠻力算法是基于計算機運算速度快這一特性,在解決問題時采用的一種“懶惰”策略。
蠻力算法的優點:
- 邏輯清晰,編寫程序簡潔
- 可以用來解決廣闊領域的問題
- 對于一些重要的問題,它可以產生一些合理的算法
- 可以解決一些下小規模的問題
- 可以作為其他高效算法的衡量標準
蠻力算法的缺點:
? ? ? ? 設計的大多數算法的效率都不高,主要適合問題規模較小的問題求解
蠻力算法的基本應用:
采用蠻力算法的一般格式
例題:
? ? ? ? 編寫一個程序,求這樣的四位數:該四位數的千位上的數字和百位上的數字都是被擦掉的,現知道十位上的數是1,個位上的數為2,已知這個數減去7就能被7整除,減去8就能被8整除,減去9就能被9整除。
代碼如下:
package 蠻力算法;public class Demo01 {/*設這個數為ab12,則n = a*1000 + b*100 + 10 + 2,且有0 < a <= 9, 0 <= b <= 9*/public static void main(String[] args) {for (int a = 1; a <= 9; a++) {for (int b = 0; b <= 9; b++) {int n = a*1000 + b*100 + 10 + 2;if ((n - 7) % 7 == 0 && (n - 8) % 8 == 0 && (n - 9) % 9 == 0){System.out.println("這個數為:" + n);//輸出的幾結果為 這個數為: 1512}}}} }簡單的選擇排序和冒泡排序
選擇排序
? ? ? ? 選擇排序是一種簡單直觀的排序算法。首先在未排序的序列中找到一個最小(最大)元素,與起始位置的元素進行交換。然后,再從剩余未排序元素中繼續尋找最小(最大)元素,然后與已排序元素的下一個位置的元素進行交換,反復循環,直到排序完成。
?代碼如下:
?
冒泡排序:
????????冒泡排序是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。
算法描述
- 比較相鄰的元素。如果第一個比第二個大,就交換它們兩個;
- 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對,這樣在最后的元素應該會是最大的數;
- 針對所有的元素重復以上的步驟,除了最后一個;
- 重復步驟1~3,直到排序完成。
?代碼如下:
?
總結
以上是生活随笔為你收集整理的【蛮力算法】数据结构与算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10下装win7双系统_B360主
- 下一篇: 面试官:说一下Synchronized底