冒泡演算法--常見手寫面試題
阿新 • • 發佈:2018-12-30
一道很常見的面試題,看似很簡單,但面試時經常要求手寫, 在面試略有壓力的環境中,我們能發揮好嗎? 好記性不如爛筆頭,下面的程式碼都經過驗證可執行的,以下均為Java程式碼。
1.網上最常見的冒泡演算法
static void sort1(int []array){
for(int i = 0 ;i<array.length ;i++){
for(int j = i + 1 ; j<array.length ;j++){
if(arrya[i]<array[j]){
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
}
2.氣泡排序提升效率,從後往前比
static void sort2(int []array){
for(int i = 0 ;i < array.length - 1; i++){
boolean flag = false ;
for(int j =array.length - 1; j > i; j--){
if(arrya[j] < array[j - 1]){
int temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
flag = true;
}
}
if (!flag){
break;
}
}
}
3.氣泡排序提升效率,從前往後比
static viod srot3(int []array){
for(int i = 0 ; i <array.length -1; i++){
boolean flag = flase;
for(int j=0;j<array.length-i-1;j++){
if(array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if(!flag){
break;
}
}
}
完整冒泡優化demon資源,親測可用,大家複製後新建Java專案把這個檔案貼上進去就可以用了。
升序排序:
public class Test05 {
public static void main(String[] args) {
// 12,45,9,67,455,用氣泡排序實現升序排列。
int[] arr = { 12, 45, 9, 67, 455 };
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("排序後:");
for (int i = 0; i < arr.length; i++)
System.out.print(arr[i] + "\t");
}
}
若要實現降序排列,只需將arr[j] > arr[j + 1]中的”<” 改為”