提交 7d0e4385 编写于 作者: W WalterWen

插入排序

上级 cd4030c6
package com.we.sort;
public class InsertionSort {
public void insertionSort(int[] list) {
// 从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的
for (int i = 1; i < list.length; i++) {
// 记录要插入的数据
int tmp = list[i];
// 从已经排序的序列最右边的开始比较,找到比其小的数
int j = i;
while (j > 0 && tmp < list[j - 1]) {
list[j] = list[j - 1];
j--;
}
// 存在比其小的数,插入
if (j != i) {
list[j] = tmp;
}
System.out.format("第 %d 趟: ", i);
printAll(list);
}
}
// 打印完整序列
public void printAll(int[] list) {
for (int value : list) {
System.out.print(value + " ");
}
System.out.println();
}
public static void main(String[] args) {
int array[] = { 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48 };
// 调用插入排序方法
InsertionSort bubble = new InsertionSort();
System.out.print("排序前: ");
bubble.printAll(array);
bubble.insertionSort(array);
System.out.print("排序后: ");
bubble.printAll(array);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册