1.冒泡排序
/**
* 冒泡排序
*
* @param array
* @return
*/
public static int[] mpSort(int array[]) {
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] < array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
2. 选择排序
/**
* 选择排序
*
* @param array
* @return
*/
public static int[] xzSort(int array[]) {
int temp;
for (int i = 0; i < array.length; i++) {
int index = i;
for (int j = i + 1; j < array.length; j++) {
if (array[index] < array[j])
index = j;
if (index != i) {
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
}
return array;
}
3.快速排序
/**
* 快速排序
*
* @param array
* @return
*/
public void quickSort(int array[], int low, int high) {// 传入low=0,high=array.length-1;
int pivot, p_pos, i, t;// pivot->位索引;p_pos->轴值。
if (low < high) {
p_pos = low;
pivot = array[p_pos];
for (i = low + 1; i <= high; i++)
if (array[i] > pivot) {
p_pos++;
t = array[p_pos];
array[p_pos] = array[i];
array[i] = t;
}
t = array[low];
array[low] = array[p_pos];
array[p_pos] = t;
// 分而治之
quickSort(array, low, p_pos - 1);// 排序左半部分
quickSort(array, p_pos + 1, high);// 排序右半部分
}
}
4.完整测试代码
public class MpsortTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = { 1, 3, 5, 7, 8, 9, 6, 4, 2 };
mpSort(array);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
/**
* 冒泡排序
*
* @param array
* @return
*/
public static int[] mpSort(int array[]) {
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] < array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
/**
* 选择排序
*
* @param array
* @return
*/
public static int[] xzSort(int array[]) {
int temp;
for (int i = 0; i < array.length; i++) {
int index = i;
for (int j = i + 1; j < array.length; j++) {
if (array[index] < array[j])
index = j;
if (index != i) {
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
}
return array;
}
/**
* 快速排序
*
* @param array
* @return
*/
public void quickSort(int array[], int low, int high) {// 传入low=0,high=array.length-1;
int pivot, p_pos, i, t;// pivot->位索引;p_pos->轴值。
if (low < high) {
p_pos = low;
pivot = array[p_pos];
for (i = low + 1; i <= high; i++)
if (array[i] > pivot) {
p_pos++;
t = array[p_pos];
array[p_pos] = array[i];
array[i] = t;
}
t = array[low];
array[low] = array[p_pos];
array[p_pos] = t;
// 分而治之
quickSort(array, low, p_pos - 1);// 排序左半部分
quickSort(array, p_pos + 1, high);// 排序右半部分
}
}
}