C语言之插入排序法

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言之插入排序法相关的知识,希望对你有一定的参考价值。

C语言之插入排序法

程序源码

#include <stdio.h>
void insertionSort(int *arr, int len)
{
  int i, j, tmp;
  for (i = 0; i < len - 1; i++)
  {
    //i=0的写法
    if (arr[i + 1] < arr[i])
    {
      tmp = arr[i + 1]; //取出小的元素
      for (j = i + 1; j >= 0 && arr[j - 1] > tmp; j--)
      {
        arr[j] = arr[j - 1];
      }
      arr[j] = tmp;
    }
  }
}

void Print(int *arr, int len)
{
  for (int i = 0; i < len; i++)
  {
    printf("%d ", arr[i]);
  }
  printf("\\n");
}

int main()
{
  //int arr[] = {96, 61, 18, 26, 55, 42, 4, 72, 83};
  int arr[] = {2, 5, 6, 4, 3, 7, 9, 8, 1, 0, 13};
  int len = sizeof(arr) / sizeof(int); //计算数组中的成员数

  Print(arr, len);
  insertionSort(arr, len);
  Print(arr, len);

  return 0;
}

以上是关于C语言之插入排序法的主要内容,如果未能解决你的问题,请参考以下文章

C语言之插入排序法

C语言之插入排序

c语言实现哈希排序代码

数据结构之八大排序算法(C语言实现)

八大排序算法(C语言实现)

单片机C语言编程代码优化