蛮力枚举算法C语言,算法01-蛮力法
算法01-蠻力法
一、蠻力法介紹
蠻力法(brute force method,也稱為窮舉法或枚舉法)是一種簡單直接地解決問題的方法,常常直接基于問題的描述,所以,蠻力法也是最容易應用的方法。但是,用蠻力法設計的算法時間特性往往也是最低的,典型的指數時間算法一般都是通過蠻力搜索而得到的 。
常見的蠻力法:冒泡排序、選擇排序。
二、冒泡排序
1、基本思想
冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序算法。這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端,故名“冒泡排序”。
它重復地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。
冒泡排序是穩定的排序算法,適合少量數據的排序(10張以內),比如炸金花。
2、代碼實現
public?static?>?void?bubbleSort(E[]?arr)?{
if?(arr?==?null?||?arr.length?==?0)?{
return;
}
//從小到大排序
for?(int?i?=?0;?i?
//?判斷是否排好序:可能在遍歷完之前就已經排好序了
boolean?flag?=?true;
for?(int?j?=?0;?j?
E?temp?=?arr[j];
if?(arr[j].compareTo(arr[j?+?1])?>?0)?{
arr[j]?=?arr[j?+?1];
arr[j?+?1]?=?temp;
flag?=?false;
}
}
if?(flag)?{
return;
}
}
}
三、選擇排序
1、基本思想
選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。
選擇排序是不穩定的排序方法(比如序列[5, 8, 3]第一次就將[5]與[3]交換,導致5挪動到8后面)。選擇排序的移動次數較少,適合少量數據的排序(10~20)。
2、代碼實現
public?static?>?void?selectSort(E[]?arr)?{
if?(arr?==?null?||?arr.length?==?0)?{
return;
}
for?(int?i?=?0;?i?
//先找到最值
int?index?=?i;
for?(int?j?=?i?+?1;?j?
E?temp?=?arr[index];
if?(temp.compareTo(arr[j])?>?0)?{
index?=?j;
}
}
//然后與最值交換
if?(index?!=?i)?{
E?temp?=?arr[i];
arr[i]?=?arr[index];
arr[index]?=?temp;
}
}
}
總結
以上是生活随笔為你收集整理的蛮力枚举算法C语言,算法01-蛮力法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新,2022年JCR正式发布(附影响因
- 下一篇: jqr