冒泡演算法由雙層迴圈實現,其中外層迴圈用於控制排序輪數,一般是要排序的陣列長度減1次,因為最後一次迴圈只剩下乙個陣列元素,不需要對比,同時陣列已經完成排序了。而內層迴圈主要用於對比陣列中每個相鄰元素的大小,以確定是否交換位置,對比和交換次數以排序輪數而減少。
演算法實現:
package captain;
public class bubblesortdemo ;
bubblesortdemo bsd = new bubblesortdemo();
bsd.bubblesort(arr);//物件呼叫氣泡排序方法 }
//氣泡排序演算法實現方法
public void bubblesort(int arr)
}} showarray(arr); }
//陣列輸出
public void showarray(int arr)
system.out.println();
}}
直接選擇排序方法屬於選擇排序的一種,它的排序速度要比氣泡排序快一些。直接選擇排序的基本思想是將指定排序位置與其它陣列元素分別比較,如果滿足條件就交換元素值,注意這裡區別氣泡排序,不是交換相鄰元素,而是把滿足條件的元素與指定的排序位置交換(如從最後乙個元素開始排序),這樣排序好的位置逐漸擴大,最後整個陣列都成為已排序好的格式。與氣泡排序相比,直接選擇排序的交換次數要少很多,所以速度會快些。
演算法實現:
package captain;
public class selectsortdemo ;
selectsortdemo ssd = new selectsortdemo();
ssd.selectsort(arr);//物件呼叫選擇排序方法 }
//直接選擇演算法的實現方法
public void selectsort(int arr)
}//內層迴圈完了之後交換位置
int temp = arr[arr.length-i-1];
arr[arr.length-i-1] = arr[index];
arr[index] = temp;
} showarray(arr); }
//陣列的輸出
public void showarray(int arr)
system.out.println();
}}
反轉排序就是以相反的順序把原有陣列的內容重新排序。其實現思路就是把陣列最後乙個元素與第乙個元素替換,倒數第二個元素與第二個元素替換,依次類推,直到把所有陣列元素反轉替換。
演算法實現:
package captain;
public class reversesortdemo ;
reversesortdemo rsd = new reversesortdemo();
rsd.reversesort(arr); }
//反轉排序演算法的實現方法
public void reversesort(int arr)
system.out.println("陣列反轉之後的元素順序:");
showarray(arr); }
//陣列輸出
public void showarray(int arr)
system.out.println();
}}
常用排序演算法java實現
氣泡排序 平均時間複雜度o n n 最好o n 最壞o n n 空間複雜度o 1 public void bubblesort int a show a 插入排序 平均時間複雜度o n n 最好o n 最壞o n n 空間複雜度o 1 public void insertsort int a a j...
常用排序演算法的Java實現
b 八大內部排序 b img 1.直接插入排序 時間複雜度o n2 空間複雜度o 1 穩定的排序演算法 直接插入排序 param arr public static void insertsort int arr arr k gap temp 3.選擇排序 時間複雜度o n2 空間複雜度o 1 不穩...
Java中常用的陣列排序演算法
氣泡排序 雙層迴圈實現。外層迴圈控制排序輪數,內層迴圈對比陣列中每個臨近元素的大小,以確定是否交換位置 程式 從小到大 public class bubblesort bubblesort sorter new bubblesort create a bubble sort class object...