八股文算法篇-插入排序
插入排序
一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
简单的理解,就是分两个队伍,将乱序的元素一个一个拿出来,放在有序的队伍中去!
算法描述
公司5个员工,进行年龄排序 [24,22,21,30,27]
1、首先,所有员工站在墙的右边
2、先把员工A叫到墙的左边
3、再叫员工B过来,和员工A进行比较,看看应该站在第一个员工的左边还是右边(排序),B比A小,则A后移一个位置,B插入
4、再叫员工C过来,和队伍最右边的A比较,比A小,A后移,C再和比较,比B小,B后移,插入
5、再叫员工D过来,和队伍最右边的A比较,比A大,则插入A的右边
6、再叫员工E过来,和队伍最右边的D比较,比D小,D后移,E和A比较,比A大,则插入A的右边
到此,排序结束!
public int[] insertSort(int arr[]) {
int len = arr.length;
int preIndex, current;
for (int i = 1; i < len; i++) {
preIndex = i - 1;
current = arr[i];
while (preIndex >= 0 && arr[preIndex] > current) {
arr[preIndex + 1] = arr[preIndex];
preIndex--;
}
arr[preIndex + 1] = current;
}
return arr;
}
何为凡人,何为仙,
岂闻朝华望何年,
回首过往,bug绵绵,
道不尽仙凡殊途,尽人间。
如果喜欢本文,给个在看吧!