插入排序
插入排序(Insertion Sorting)的基本思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表只包含一个元素,无序表包含n-1个元素,每次从无序表中取出一个元素,把他依次与有序表元素比较,将他插入到有序表中的适当位置,形成新的有序表。
时间复杂度为O(n^2)。
基本代码
package insert_sort;
import java.util.Arrays;
public class insertsort {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int[] arr= {111,24,57,2};
insertSort(arr);
}
//插入排序
public static void insertSort(int[] arr) {
for(int i=1;i<arr.length;i++)
{
int insertval=arr[i];
int insertindex=i-1;
//给insertval找到插入的位置
while(insertindex>=0&&insertval<arr[insertindex]) {
arr[insertindex+1]=arr[insertindex];
insertindex--;
}
arr[insertindex+1]=insertval;
}
System.out.println(Arrays.toString(arr));
}
}