public class Sort {
/**
冒泡排序:将最大值放在后面(从后向前排序)
插入排序:将数值插入到前面已经排好的数组(从前向后排序,仍有改动)
选择排序:将最小值放在该位置(从前向后排序)
*/
public static void main(String[] args) {
insertSort();
chooseSort();
bubbleSort();
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + ",");
}
}
public static int[] array = new int[]{58,63,42,69,10,23,46,79,25,3};
/**
* 插入排序 每次循环将该值插入前面排好的数组
*/
public static void insertSort(){
// 从小 到大
for (int i = 0; i < array.length; i++) {
for (int j = i-1; j>=0; j--) {
int temp;
if (array[j]>array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
/**
* 选择排序 每次循环取最小值
*/
public static void chooseSort() {
// 从小 到大
for (int i = 0; i < array.length; i++) {
// 最小值
int temp = array[i];
// 最小值位置
int index = i;
for (int j = i; j < array.length - 1; j++) {
if (temp > array[j+1]) {
temp = array[j+1];
index = j+1;
}
}
array[index] = array[i];
array[i] = temp;
}
}
/**
* 冒泡排序 相邻比较
*/
public static void bubbleSort() {
// 从小 到大
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1; j++) {
int temp;
if (array[j] > array[j + 1]) {
// 相邻交换位置
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
}
有不对的地方希望能够指点一下,感激不尽!!!