排序算法之插入排序

来源:互联网 发布:从微信里打开淘宝 编辑:程序博客网 时间:2024/06/16 19:00

插入排序(Insert Sort

在一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分有序的数组,第二部分为带插入数据的数组。

插入排序算法

⒈ 从第一个元素开始,该元素可以认为已经被排序

⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描

⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置

⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置

⒌ 将新元素插入到下一位置中

⒍ 重复步骤2~5

插入排序算法实现及注释

void insert_sort(int* a,int n)//在已经排好序的数组中插入数据{int i,j;//第一个元素不需要比较,外层循环为待插入的元素for(i = 1;i<n;i++){//目前要插入的数据int key = a[i];//已经排好序的数据j = i-1;//从已经排好序的数据遍历找出while(j>=0&&a[j]>key){//后移一位a[j+1] = a[j];//继续向前移动一位,继续判断,找出合理的位置j--;}//将要插入的数据插入到正确位置a[j+1] = key;}}


原创粉丝点击