标题:我这个程序算“插入法”排序吗?
只看楼主
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
结帖率:78.57%
已结贴  问题点数:10 回复次数:6 
我这个程序算“插入法”排序吗?
#include<stdio.h>
void main()
{
    int i,j,t,n,a[20];
    printf("请输入n的值(n<=20):");
    scanf("%d",&n);
    printf("请输入%d个数:",n);
  for(i=0;i<n;i++)  
  {printf("第%d个数:",i+1);
        scanf("%d",&a[i]);}
        printf("原来的顺序为:");
         for(i=0;i<n;i++)
        printf("%d  ",a[i]);
        printf("\n");
   for(i=1;i<n;i++)
    for(j=0;j<i+1;j++)
   {if(a[j]>a[i])
   {t=a[i];a[i]=a[j];a[j]=t;}}
 printf("排好的顺序为:");
         for(i=0;i<n;i++)
        printf("%d  ",a[i]);
        printf("\n");
}
搜索更多相关主题的帖子: 插入法 include 
2012-10-20 20:37
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
得分:10 
是冒泡排序
2012-10-20 22:29
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:119
专家分:439
注 册:2012-10-10
得分:0 
我也觉得楼主这是冒泡排序法

小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-10-20 23:40
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
得分:0 
#include<stdio.h>
#include<stdlib.h>

void main()
{   
    int i,n,t,j,h,a[20];
    printf("请输入n的值(n<=20):");
    scanf("%d",&n);
    printf("请输入%d个数:",n);
  for(i=0;i<n;i++)  
  {printf("第%d个数:",i+1);
        scanf("%d",&a[i]);}
        printf("原来的顺序为:");
         for(i=0;i<n;i++)
        printf("%d  ",a[i]);
        printf("\n");
  
        
for(i=1;i<n;i++)
    { t=a[i];
      j=j-1;
      while(j>=0&&t<a[j])
      { a[j+1]=a[j];
        j--;
      }
      a[j+1]=t;
      printf("第%d步排序结果:",i);
      for(h=0;h<n;h++)
      {
          printf("%d",a[h]);
      }
      printf("\n");
    }
        

 printf("排好的顺序为:");
    for(i=0;i<n;i++)
    {
        printf("%d  ",a[i]);
    }
        printf("\n");

}
这个程序哪里错了?
2012-10-21 18:49
a646404908
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:189
专家分:492
注 册:2012-2-14
得分:0 
for(i=1;i<n;i++)
    { t=a[i];
      j=j-1;                            //j没有初始化
      while(j>=0&&t<a[j])
      { a[j+1]=a[j];
        j--;
      }
      a[j+1]=t;
      printf("第%d步排序结果:",i);
      for(h=0;h<n;h++)
      {
          printf("%d",a[h]);
      }
      printf("\n");
    }
2012-10-21 21:06
qishi123
Rank: 1
等 级:新手上路
帖 子:78
专家分:9
注 册:2012-9-5
得分:0 
哦,我有句写错了,应该是j=i-1
2012-10-21 21:11
cjbs10086
Rank: 2
等 级:论坛游民
帖 子:32
专家分:45
注 册:2012-10-13
得分:0 
//插入排序。。
#include<stdio.h>
int i,j,temp;
void InsertSort(int a[],int n)
{
    for(i=0;i<n;i++)
    {
        temp=a[i];
        j=i-1;
        while(j>=0&&a[j]>temp)
        {
            a[j+1]=a[j];
            j--;
        }
        a[j+1]=temp;
    }
}
int main()
{
    int a[]={3,2,8,5,6,9,7,1,4};
    InsertSort(a,9);
    for(i=0;i<9;i++)
        printf("%d%c",a[i],i==8? '\n':' ');
    return 0;
}
2012-10-21 21:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-383690-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090037 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved