tyf1218405122 发表于 2022-5-22 19:44:01

插入排序

我的:

//插入排序

#include <stdio.h>

int charu_sort(int array[],int length);
int charu_sort(int array[],int length)
{
        int i,j,temp;
        for(i=1;i<length;i++)
        {
                temp=array;
                j=i-1;
                for(;j>=0&&array>temp;j--)
                {
                        array=array;
                        array=temp;
                }
               
        }
}

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

      length = sizeof(array) / sizeof(array);
      charu_sort(array, length);

      printf("排序后的结果是:");
      for (i = 0; i < length; i++)
      {
                printf("%d ", array);
      }
      putchar('\n');

      return 0;
}


小甲鱼的:

#include <stdio.h>

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

void insertion_sort(int array[], int length)
{
      int i, j, temp;

      for (i = 1; i < length; i++)
      {
                temp = array;
                j = i - 1;
                for ( ; j >= 0 && array > temp; j--)
                {
                        array = array;
                }
                array = temp;
      }
}

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

      length = sizeof(array) / sizeof(array);
      insertion_sort(array, length);

      printf("排序后的结果是:");
      for (i = 0; i < length; i++)
      {
                printf("%d ", array);
      }
      putchar('\n');

      return 0;
}


我想问一下这两种都可以得出结果,但是有什么不同吗?
或者说有什么难以发现的错误;或者说容易造成什么误解。

风车呼呼呼 发表于 2022-5-22 21:01:19

一样的,没错。效率方面,第二种相对高一些
页: [1]
查看完整版本: 插入排序