
下面列出了各种排序方法的时间与稳定性
稳定与不稳定(
通俗地讲,稳定就是两个相等的数不会交换位置
)
常规表示方法
冒泡排序
public static void bubbleSort(int[] nums){
int size = nums.length;
int temp;
for (int i = 0; i < size-1; i++) {
for (int j = 0; j <size-i-1 ; j++) {
if (nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
Log.i(TAG, "bubbleSort: "+ Arrays.toString(nums));
}
选择排序
public static void selectSort(int[] nums){
int size = nums.length;
int temp;
int minIndex;
for (int i = 0; i < size-1; i++) {
minIndex = i;
for (int j = i+1; j <size ; j++) {
if (nums[j] < nums[minIndex]){
minIndex = j;
}
}
if (minIndex != i){
temp = nums[i];
nums[i] = nums[minIndex];
nums[minIndex] = temp;
}
}
Log.i(TAG, "selectSort: "+ Arrays.toString(nums));
}
插入排序
public static void insertSort(int[] nums){
int size = nums.length;
int temp;
for (int i = 1; i < size; i++) {
for (int j = i; j > 0 ; j--) {
if (nums[j] < nums[j-1]){
temp = nums[j];
nums[j] = nums[j-1];
nums[j-1] = temp;
}
}
}
Log.i(TAG, "insertSort: "+ Arrays.toString(nums));
}