有时间的话,每天写一点儿代码,不然真的会生疏的。
今天我就用java实现一下这个插入排序吧。简单的说,插入排序就是将某个数据插入好已经拍好的数据之中,它要满足以下的两个条件:
一,在插入之前,队列(我就暂时说队列吧,就是拍好的一列数据)已经排好。
二,在插入之后,保证队列已经排好
这样的话,最后的数据就是排好的了。。。直接看代码。
public void insertSortAsc() {
int arrLength = m_Arr.length;
int i = 0;
int key = 0;
for (int j = 1; j < arrLength; ++j) {
key = m_Arr[j];
i = j - 1;
while (i >= 0 && m_Arr[i] > key) {
m_Arr[i + 1] = m_Arr[i];
--i;
}
m_Arr[i + 1] = key;
}
}
这个是升序排的,也可以降序,改一下就好了。。。(没有特殊说明,都用升序排列了)。看吧,这个很简单,主要是一些标志点注意一下就好了。。。
运行结果
{ 47,63,38,81,76,53,31,30,96,40,81,6,5,27,3 }
insert sort run time :0 ms
{ 3,5,6,27,30,31,38,40,47,53,63,76,81,81,96 }
里面有一个消耗时间的代码,用System.currentTimeMills(),就可以了,排序前后相减,能得出,以后我们可以通过这个计算算法消耗的大致时间。。。