java排序算法之插入排序
插入排序
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。
插入排序是最简单的排序算法之一,由N-1趟排序组成,必须得保证位置0到p处的元素都是已排序状态。
具体实现的代码如下:
package k; import java.util.Scanner; public class test2 { public static void main(String[] args) { Scanner in=new Scanner(System.in); //获取输入的字符串,并且把中间的空格全部去掉 String [] str = in.nextLine().split("\\s+"); int [] inter=new int[str.length]; //把字符串转换为数字 for(int i=0;i<inter.length;i++) { inter[i]=Integer.valueOf(str[i]); } //排序 sort(inter); //输出排序后的结果 for(int i=0;i<inter.length;i++) { System.out.printf("%d ",inter[i]); } } /** * 排序 * @param inter */ private static void sort(int[] inter) { int p; for(p=1;p<inter.length;p++) { int j; int temp=inter[p]; for(j=p-1;j>=0 && temp<inter[j];j--) { inter[j+1]=inter[j]; } inter[j+1]=temp; } } }
sort()中实现了插入排序。
其原理可以用以下一张图片来说明:
以上便实现了插入排序算法。时间复杂度为O(N2)。