直接插入排序是指将一个个待排序的元素插入到前面已经排好序的有序序列中去,直到插完所有元素为止,主要步骤如下:
1)先假设第一个元素已经排好序。
2)然后依次取出还需要进行排序的下一个元素,也就是排序完成的元素后面的下一个元素,取出下一个元素,设为待插入元素,在已经排序的元素序列中从后向前扫描,如果该元素(已排序)大于待插入元素,将该元素移到下一位置。
3)重复步骤2,直到找到已排序的元素小于或者等于待排序元素的位置,插入元素。
4)重复步骤2、步骤3,完成排序。
例如:
import java.util.Arrays; public class Main { public static void main(String args[]) { int[] arr = new int[]{17,62,39,52,8,24}; for(int i=1;i<arr.length;i++) { //从第二个元素开始比较 int temp = arr[i]; //记录当前元素 for(int j=i-1;j>=0;j--) { //从最后一个元素开始比较 if(arr[j]>temp) { //如果比当前元素大 arr[j+1] = arr[j]; //从该处往后所有元素向后移动一位 arr[j] = temp; //将当前元素插入到arr[j]中 } } } for(int i=0;i<arr.length;i++) { System.out.print(arr[i]+" "); } } }
运行结果如下:
8 17 24 39 52 62
本文固定URL:https://www.dotcpp.com/course/898