王道考研 ++++ 直接插入排序

#include <stdio.h>
#include <stdlib.h>

/*插入排序*/
int* Insertsort(int *list,int size)
{
  int i,j;
  for(i = 2;i <= size;i++)
  {
    list[0] = list[i];
    for(j = i-1;list[0] < list[j];j--)
      list[j+1] = list[j];
    list[j+1] = list[0];
  }
  return list;
}
int main(int argc, char const *argv[]) {
  int size,i;
  int *list;
  printf("请输入数组大小:");
  scanf("%d",&size);
  list = (int*)malloc(sizeof(int)*(size+1));
  printf("请输入%d个数:\n",size);
  for(i = 1;i <= size;i++)
    scanf("%d",&list[i]);
  list = Insertsort(list,size);
  printf("排序后:\n");
  for(i = 1;i <= size;i++)
    printf("%d%c",list[i]," \n"[i == size]);
  return 0;
}

发布了85 篇原创文章 · 获赞 40 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/WX_1218639030/article/details/100094397