1、冒泡
//,冒泡
public static void sortmaopao();
system.out.println("排序前:"+ arrays.tostring(arr));
int temp;
for(int j=0 ;jarr[i+1])}}
system.out.println("排序後:"+ arrays.tostring(arr));
}
2、選擇排序
//選擇排序
public static void selectsort();
system.out.println("排序前:"+ arrays.tostring(arr));
for(int i=0; iarr[j])
}if(minindex!=i)
}system.out.println("排序前:"+ arrays.tostring(arr));
}
3、插入排序
//插入排序
public static void insertsort();
system.out.println("排序前:"+ arrays.tostring(arr));
int insertval;
int insertindex;
for(int i=1 ; i=0保障不越界,等於-1表示找到了最前邊,
//跳出while;insertval=0 && insertval4、希爾排序
//希爾排序(一種插入排序,簡單增量排序)
public static void shellsort();
system.out.println("排序前:"+ arrays.tostring(arr));
int size = arr.length;
for(int gap =size/2 ; gap>0; gap = gap/2)
if(l>=r)
temp=arr[l];//找到了,進行冒泡交換排序
arr[l]=arr[r];
arr[r]=temp;
}if(l==r)
if(leftl)
}
6、歸併排序
//歸併排序(又叫分治排序)
public static void mergesort(int arr ,int left, int right , int temp){
if(left7、基數排序
//基數排序(對桶排序的優化)
public static void radixsort(int array){
int max = array[0];//找出最大數
for(int i=0; i0){//表示查出有數的桶
for(int l =0;l8、堆排序,堆排序依賴樹
移步檢視樹部分文章
排序總結:
八大排序(2)
氣泡排序 void sort int array if ischarge 時間複雜度 空間複雜度 穩定性適合場景 o n 2 o 1 穩定元素基本有序,數量較小 快排 遞迴從待排序區間選擇乙個數,作為基準值key partion 遍歷整個待排序區間,將比基準值小的 可以包含相等的 放到基準值的左邊,...
八大排序之快排
public class quicksort sort a,0,5 for int i 0 i a.length i public static void sort int a,int left,int right int i left int j right int key a left whil...
八大排序演算法
1.直接插入排序 原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。實現 void insertsort node l,int length void shell ...