各种排序算法的实现直接插入排序

  广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,疯狂软件年终钜惠,报名java就业班,免费赠送基础班,名额有限,本月火热报名中,欢迎有志之士电话或者QQ咨询。

  很多排序算法 可能你当时看完还记得,但是时间长了就会忘记, 我现在在这里 记录一下 ,供大家共同讨论。

  首先介绍最直接 最简单的 ,直接插入排序算法:

  这种算法思想比较简单,就是从第二元素开始,依次往后挪动, 每一个元素与前面的元素逐个比较,一旦找到了比自己大的元素 或者相等的元素,那么ok 直接插进去。 如此循环 直到列表遍历完毕。

  下一节回顾,讲一下比这个更快的 折半插入排序。

  这是一个简单的 直接插入排序,如果有什么问题, 或者说有效率方面可以加快的,欢迎大家更正,批评,讨论。

  也可以加群C语言/C++/STL/linux/MFC/WTL 77278127 参与讨论。

  template

  void sort(T *temp, int len)

  {

  for (int i = 1; i < len; i++)

  {

  if (*(temp + i) > *(temp + i - 1))

  {

  continue;

  }

  for (int j = 0; j < i; j ++)

  {

  if (*(temp + j) > *(temp + i))

  {

  T t = (*(temp + i) );

  memcpy(temp + j + 1, temp + j, sizeof(T) * (i - j));

  *(temp + j) = t;

  break;

  }

  }

  }

  }

  int main(int argc, char* argv[])

  {

  int src[10] = {3, 9, 4, 5, 1, 45, 6, 8, 7, 7};

  sort(src, 10);

  for (int i = 0; i < 10; i++)

  {

  printf("%d ", src[i]);

  }

  return 0;

  }

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!疯狂java培训中心地址:广州天河区车陂沣宏大厦3楼。

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。疯狂软件开设了java课程,ios课程,android课程,为你提供一个学习java技能的好机会,疯狂软件特大优惠活动,加疯狂软件微信号(疯狂软件),抢优惠,优惠100元+赠送iOS教材一本 详情请看疯狂java培训官网。IT从业着仍是社会所需要的高端人才,广州疯狂软件之力于培养企业所需要的中高端IT人才,让你成为备受企业青睐的人才。

原文地址:https://www.cnblogs.com/gojava/p/3504705.html