c语言编程输入一个不少于10个数字的数组,对该数组用插入排序法排序

如题所述

#include<stdio.h>
#include<stdlib.h>
int main ()  
{
int n,i;
int *p;
int h;


void select_sort(int*a,int n);

printf("输入数组中元素个数 ");
scanf("%d",&n);
p=(int *)malloc(n*sizeof(int));
for(i=0;i<n;i++)
scanf("%d",&p[i]);


for(h=0;h<n;h++)

printf("%d ",p[h]);


printf("\n");

select_sort(p, n);

for(h=0;h<n;h++)

printf("%d ",p[h]);

return 0;  

}

void select_sort(int*a,int n)
{
    register int i,j,min,t;
    for(i=0;i<n-1;i++)
    {
        min=i;//查找最小值
        for(j=i+1;j<n;j++)
            if(a[min]>a[j])
                min=j;//交换
        if(min!=i)
        {
            t=a[min];
            a[min]=a[i];
            a[i]=t;
        }
    }
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-19
#include <stdio.h>
#include <stdlib.h>
void InsertSort(int R[],int n)
{
int i,j;
for(i=2;i<=n;i++)
{
R[0]=R[i];
j=i-1;
while(j>=1&&R[0]<R[j])
{
R[j+1]=R[j];
j--;
}
R[j+1]=R[0];
}
}
int main()
{
int a[]={-999,2,3,1,5,4,6,14,19,12,122};
int i,m=11;
InsertSort(a,m);
for(i=1;i<=11;i++)
printf("%d ",a[i]);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网