堆排序
//堆排序
public static void heapsort(int arr)
for (int j = arr.length - 1; j > 0; j--)
} //整理堆
private static void adjustheap(int arr, int i, int length)
if (arr[k] > temp)
} arr[i] = temp;
} //交換資料
private static void swap(int arr, int a, int b)
快速排序/**
* 快速排序
* @param array
* @param left
* @param right
*/public static void quicksort(int array, int low, int high)
int middle = partition(array, low, high);
quicksort(array, low, middle - 1);
quicksort(array, middle + 1, high);
}private static int partition(int array, int low, int high)
array[low] = array[high];
while (low < high && array[low] <= temp)
array[high] = array[low];
}array[low] = temp;
return low;
}
氣泡排序//氣泡排序
public static void bubblesort(int array)
}} }
####插入排序
//插入排序
public static void insertionsort(int array)
array[value + 1] = key;
} }
####選擇排序
//選擇排序
public static void selectsoft(int array)
}if (i != min) }}
####歸併排序
//歸併排序
public static int mergesort(int arrayint, int low, int high)
return arrayint;
}//將兩個排列好的陣列合併成乙個有序陣列
private static void merge(int arrayint, int low, int mid, int high)
for (int i = 0; i < yy.length - 1; i++)
//設定哨兵
xx[a] = integer.max_value;
yy[b] = integer.max_value;
int n = 0;
int m = 0;
for (int i = low; i <= high; i++) else
} }
####希爾排序
//希爾排序
public static void shellsort(int array)
}} }
關於排序演算法的一點知識 演算法思想
1.功能 選擇排序 思想 在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換 然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。效能 不穩定的,演算法複雜度o n 2 思想 在要排序的一組數中,假設前面 n 1 n 2 個數已經是排好順序的,現在要把...
排序演算法之插入排序以及 常用類
規律 1 兩兩比較.在陣列中,使用arr 1 和arr 0 先比較,先讓前面元素,變成有序.將當前元素值小的插入到左邊元素的前面,可理解為站佇列,小個子在前,大個子在後.2 比較次數 陣列長度 1次.public class insertsorttest insertsort arr printar...
知識掃盲 演算法 排序演算法
氣泡排序的核心思想是 從無序佇列的頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大 小 元素放在佇列的尾部,從而成為有序佇列的一部分 氣泡排序維護兩個for迴圈,第乙個for迴圈控制次數,第二個for迴圈控制兩兩比較。需要注意的是 氣泡排序從哪冒?一般來將都會從右邊冒出,也就是說右邊 佇列的...