三大基本排序算法之一,插入排序(Insertion Sort)。
插入排序就是把一个数插入一个已排好的序列中。
前提:
排序结果为从小到大。
插入排序的步骤:
1、一个序列,把第一个数当成一个已排好的序列。
2、从待排序的序列中取第一个数,与已排序序列中的数从后向前挨个比较大小,
3、若是待排序的数比已排序的数小,把已排序的数在序列中向后移一个位置。
4、重复第3步,继续比较下一个已排序的数与待排序的数。
5、把待排序的数插入到空出的位置上。
6、重复第2~5步,直到待排序序列为空。
代码实现:
public void sort(){
int[] a = {9,2,4,5,7,6,8,3,1,0};
System.out.println("first:"+Arrays.toString(a));
for(int i=1,num=a.length; i<num; i++)
{
int temp = a[i]; //记录待排序的数值
int positon = 1; //记录待排序的数值应该插入的位置
for(int j = i-1;j>=0;j--)
{
//如果待排序数比已排序的数小,已排序数向后移一位。
if(temp < a[j]){
a[j+1] = a[j]; //位置后移一个
positon = j; //把空出来的位置拿到
}
}
a[positon] = temp; //把待排序的数据插入到空出的位置上
}
System.out.println("second:"+ Arrays.toString(a));
}在网上找到一个形象的图形很有意思:
参考文章: http://bubkoo.com/2014/01/14/sort-algorithm/insertion-sort/
总结:
插入排序在最后一个数排完之前,已排序好的序列是不固定的。
又一次学习算法,这次收获很大。要刻意练习,才能达到优秀的程度。
本文详细介绍了插入排序的基本原理及其实现过程。插入排序是一种简单的排序算法,通过将一个待排序的元素与已排序序列中的元素进行比较并插入正确位置来完成排序。文章提供了具体的步骤解析,并附带了Java代码示例。
564

被折叠的 条评论
为什么被折叠?



