鱼C论坛

 找回密码
 立即注册
查看: 1821|回复: 1

插入排序

[复制链接]
发表于 2022-5-22 19:44:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的:

  1. //插入排序

  2. #include <stdio.h>

  3. int charu_sort(int array[],int length);
  4. int charu_sort(int array[],int length)
  5. {
  6.         int i,j,temp;
  7.         for(i=1;i<length;i++)
  8.         {
  9.                 temp=array[i];
  10.                 j=i-1;
  11.                 for(;j>=0&&array[j]>temp;j--)
  12.                 {
  13.                         array[j+1]=array[j];
  14.                         array[j]=temp;
  15.                 }
  16.                
  17.         }
  18. }

  19. int main(void)
  20. {
  21.         int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
  22.         int i, length;

  23.         length = sizeof(array) / sizeof(array[0]);
  24.         charu_sort(array, length);

  25.         printf("排序后的结果是:");
  26.         for (i = 0; i < length; i++)
  27.         {
  28.                 printf("%d ", array[i]);
  29.         }
  30.         putchar('\n');

  31.         return 0;
  32. }
复制代码



小甲鱼的:

  1. #include <stdio.h>

  2. void insertion_sort(int array[], int length);

  3. void insertion_sort(int array[], int length)
  4. {
  5.         int i, j, temp;

  6.         for (i = 1; i < length; i++)
  7.         {
  8.                 temp = array[i];
  9.                 j = i - 1;
  10.                 for ( ; j >= 0 && array[j] > temp; j--)
  11.                 {
  12.                         array[j+1] = array[j];
  13.                 }
  14.                 array[j+1] = temp;
  15.         }
  16. }

  17. int main(void)
  18. {
  19.         int array[] = {73, 108, 111, 118, 101, 70, 105, 115, 104, 67, 46, 99, 111, 109};
  20.         int i, length;

  21.         length = sizeof(array) / sizeof(array[0]);
  22.         insertion_sort(array, length);

  23.         printf("排序后的结果是:");
  24.         for (i = 0; i < length; i++)
  25.         {
  26.                 printf("%d ", array[i]);
  27.         }
  28.         putchar('\n');

  29.         return 0;
  30. }
复制代码



我想问一下这两种都可以得出结果,但是有什么不同吗?
或者说有什么难以发现的错误;或者说容易造成什么误解。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-5-22 21:01:19 | 显示全部楼层
一样的,没错。效率方面,第二种相对高一些
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-18 04:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表