插入排序

升序排

对数组进行插入排序

void insert_sort(int* ar, int n)
{
    int key;
    for (int j = 1; j < n; j++)
    {
        key = ar[j];  //保存待排数据
        int i;
        for (i = j - 1; i >= 0; i--)
        {
            if (ar[i] > key)  //比待排数据大,右移
                ar[i + 1] = ar[i];
        }
        ar[i + 1] = key;  //插入待排数据
    }
}

对线性表进行插入排序

void insert_sort_ll(LinkList& list)
{
      if(head->next)
      {
          LinkList* last = head->next, *current = last->next; *in=head;
           while(current)
           {
                for(in = head; in!=last; in = in->next)
                {
                    if(current->data < in->next)
                     {
                          last->next = current->next;
                          current->next = in->last;
                          in->last = current;
                          break;
                     }
                }
                current = last->next;
           }
      }   
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容