Java学习——排序算法之直接插入排序
直接插入排序的基本原理是:每一步将一个待排序的元素,按照其大小,插入到已经排号序的一组元素当中适当的位置。
import java.util.Arrays;
public class Test3 {
/**
* 直接插入排序
*/
public static void main(String[] args) {
//定义一个int类型的数组
int[] arr = {5,3,1,8,2};
/*
* 排序
* 外层遍历待比较的所有数组元素
*/
for (int i=1; i<=arr.length-1; i++) {
/*
* 定义一个变量,让这个变量从i开始
*/
int j = i;
/*
* 如果当前元素比前一个元素小则交换位置
*/
while (j>0&&arr[j]<arr[j-1]){
int t=arr[j];
arr[j]=arr[j-1];
arr[j-1]=t;
j--;//往前递减,让当前元素和上一个元素比较
}
}
//利用Arrays打印排序好的数组
System.out.println(Arrays.toString(arr));
}
}
/*
* 输出:[1, 2, 3, 5, 8]
*/
import java.util.Arrays;
public class Test3 {
/**
* 直接插入排序
*/
public static void main(String[] args) {
//定义一个int类型的数组
int[] arr = {5,3,1,8,2};
/*
* 排序
* 外层遍历待比较的所有数组元素
*/
for (int i = 1; i <= arr.length-1; i++) {
//内循环将本轮选择的元素与已经排好序的元素相比较
for (int j = i; j >0; j--) {
//当前元素小于前一个元素时,互换位置
if (arr[j]<arr[j-1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//利用Arrays打印排序好的数组
System.out.println(Arrays.toString(arr));
}
}
/*
* 输出:[1, 2, 3, 5, 8]
*/