一、冒泡排序的Java实现
public void bubbleSort(int[] array){
int len = array.length;
int temp = 0;
//循环次数:array.length
for(int i = 0; i < len; i ++){
//每次循环体内将数组前len-i个数中最大的数移动到array[len-i-1]的位置上
for(int j = 1; j < len - i; j ++){
//此排序算法为升序排序
if(array[j - 1] > array[j]){
temp = array[j -1];
array[j -1] = array[j];
array[j] = temp;
}
}
}
}
二、快速排序的Java实现
public void quickSort(int[] array){
quickSort(array,0,array.length - 1);
}
private void quickSort(int[] array, int begin, int end){
//如果数组为空或只有一个元素,则结束
if(begin >= end) return;
int middle = partition(array,begin,end);
quickSort(array, begin, middle - 1);
quickSort(array, middle + 1, end);
}
private int partition(int[] array, int begin, int end){
//以array[end]的值作为分界点,使得数组左边的值都小于等于它,右边的值都大于它
int value = array[end];
//i作为索引,它的下一个位置就是较大数的第一个位置
int i = begin - 1;
int temp = 0;
for(int j = begin; j < end; j ++){
if(array[j] <= value){
i ++;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
i ++;
array[end] = array[i];
array[i] = value;
return i;
}
三、