/********************************插入排序*******************************************
* 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序。
* [5, 3, 9, 1, 2, 4]
* ------------------
* [3, 5, 9, 1, 2, 4]
* [3, 5, 1, 9, 2, 4]
* [1, 3, 5, 9, 2, 4]
* [1, 2, 3, 5, 9, 4]
* [1, 2, 3, 4, 5, 9]
*
* @param data
*/
public static void insertSorte(int[] data) {// 插入排序.
int temp;
for (int i = 1; i < data.length; i++) {
for (int j = i; (j > 0) && (data[j] < data[j - 1]); j--) {
temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
display(data);
System.out.println();
}
}
}
/***************************冒泡排序**********************************************/
* 依次比较相邻的两个数,将小数放在前面,大数放在后面.
* 5, 3, 9, 1, 2, 4
* ----------------
* 5 3 1 9 2 4
* 5 1 3 9 2 4
* 1 5 3 9 2 4
* ----------------
* 1 5 3 2 9 4
* 1 5 2 3 9 4
* 1 2 5 3 9 4
* ----------------
* 1 2 5 3 4 9
* 1 2 3 5 4 9
* -------------
* 1 2 3 4 5 9
* @param data
*/
public static void bubbleSort(int[] data) {// 冒泡排序.
int temp;
for (int i = 0; i < data.length; i++) {
for (int j = data.length - 1; j > i; j--) {
if (data[j] < data[j - 1]) {
temp = data[j];
data[j] = data[j - 1];
data[j - 1] = temp;
display(data);
System.out.println();
}
}
}
}
/**********************************选择排序**************************************************************
* 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完.
* 5 3 9 1 2 4
* -----------
* 1 3 9 5 2 4
* -----------
* 1 2 9 5 3 4
* -----------
* 1 2 3 5 9 4
* -----------
* 1 2 3 4 9 5
* -----------
* 1 2 3 4 5 9
* @param data
*/
public static void selectSorte(int[] data) {// 选择排序
int temp;
for (int i = 0; i < data.length; i++) {
int lowIndex = i;
for (int j = data.length - 1; j > i; j--) {
if (data[j] < data[lowIndex]) {
lowIndex = j;
}
}
temp = data[i];
data[i] = data[lowIndex];
data[lowIndex] = temp;
display(data);
System.out.println();
}
}
JAVA
最新推荐文章于 2025-04-25 19:16:38 发布