插入法排序

来源:互联网 发布:北大青鸟c语言教程 编辑:程序博客网 时间:2024/05/22 13:36
插入法排序,插入法排序相对于选择排序和冒泡排序来说相对要难理解一些,算法也比较巧妙,直接看代码:
public static void sort(int[] m){for(int i=1;i<m.length;i++){int t=m[i];int j=i-1;while(j>=0&&m[j]>t){m[j+1]=m[j];//把前一个赋给后一个j--;}m[j+1]=t;//因为前面那有j--,所以,这里的j要加1表示当前替换的地方}}

图解:

这个图解是我当时根据自己对这个算法的理解以及在思考的时候所遇到的瓶颈所总结出来的解释,如果看不太明白,下面这是百度上的解释:

输入一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕。输入一个数,插入一个各元素已经按照升序排列的数组中,插入后使数组中元素仍然是按照升序排列的。思想:把欲插入的数与数组中各数逐个比较, 当找到第一个比插入数大的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素a[i]即可。如果被插入数比所有的元素值都小则插入最前位置。

0 0
原创粉丝点击