您的位置:首页 > 其它

算法基础——插入排序

2017-09-20 19:12 162 查看

思路

插入排序就像排一手扑克牌,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。



#伪代码
for j = 2 to A.length
key = A[j]
i = j - 1
while i > 0 and A[i] > key
A[i+1] = A[i]
i = i - 1
A[i+1] = key


Java实现

import java.util.*;
/**
插入排序算法
*/
public class Insertsort{
static void sort(int[] arr){
sort(arr,0,arr.length-1);
}
static void sort(int[] arr,int left,int right){
for(int j = left+1; j <= right; j++){
int key = arr[j];
int i = j - 1;
while(i >= left && arr[i] > key) {
arr[i+1] = a[i];
i--;
}
arr[i+1] = key;
}
}
}
public static void main(String[] args){
int[] arr = {1,2,6,4,5,3};
sort(arr);
System.out.println(Arrays.toStirng(arr));
}


INSERTION-SORT 在数组 A=<31,41,59,26,41,58>上的 执行过程。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  插入排序 算法