插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 基本思想: 代码实现: public static void insertSort(int[] arr){ int insertVal=0; int insertIndex=0; for (int i = 1; i <arr.length; i++) { insertVal=arr[i]; //定义插入的数 insertIndex=i-1; //即arr[i]的前面这个数的下标 /* 说明: 1.insertIndex>=0保证在给insertVal找插入位置,不越界 2.insertVal<arr[insertIndex]待插入的数,还没有找到插入位置 3.就需要将arr[insertIndex]后移 */ while(insertIndex>=0&&insertVal<arr[insertIndex]){ arr[insertIndex+1]=arr[insertIndex]; insertIndex--; } //当退出while循环时,说明插入的位置找到,insertIndex+1 if (insertIndex+1!=i){ arr[insertIndex+1]=insertVal; } } System.out.println(Arrays.toString(arr)); }