
排序算法 【程序1】 题目,对10个数进行排序 1程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素 交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。 2程序源代码: #define N 10 main0 nt小.mln,tem,aN /"input data*/ printfl"please input ten nume\n"); for[i=0.H printil"al%d]=": scanft"%d&a可l:】 printfl"\n"): for[i=0:iprintfl"%5d"a[ill: printfl"\n"): /"sort ten num/ forli-D.imini: for(j=i+1:f(a[min]>aul)min=j: tem-ai: ali]-a(mint a(min)=tem; 】 /output data*/ printil"After sorted n"): forli-0.printl"%5d"alill:
排序算法 【程序 1】 题目:对 10 个数进行排序 1.程序分析:可以利用选择法,即从后 9 个比较过程中,选择一个最小的与第一个元素 交换, 下次类推,即用第二个元素与后 8 个进行比较,并进行交换。 2.程序源代码: #define N 10 main() {int i,j,min,tem,a[N]; /*input data*/ printf("please input ten num:\n"); for(i=0;i{ printf("a[%d]=",i); scanf("%d",&a[i]);} printf("\n"); for(i=0;iprintf("%5d",a[i]); printf("\n"); /*sort ten num*/ for(i=0;i{min=i; for(j=i+1;jif(a[min]>a[j]) min=j; tem=a[i]; a[i]=a[min]; a[min]=tem; } /*output data*/ printf("After sorted \n"); for(i=0;iprintf("%5d",a[i]); }

【程序2】 题目:有一个已经排好序的数组。现输入一个数,要求按单米的烧律将它插入数组中。 1程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况, 插入后此元素之后的数,依次后移一个位置。 2程序潭代码: main0 1 int a[11-1,46,9,13,16,19,28,40,100 int temp1.temp2,number.end.i. printtl"original array is:'\n"]: for[i=0.ic10:i++) printfl%sd”,af可l printl"\n"): print"insert a new number:"]: scanf["%d",&number: end-a[91: if(number>end] aio-numbe行 eise (for(i-O:ic10.i+] (la间number) (templ-a[i alil-number; or=i+1k11:++】 temp2=ab aljl-temp1; templ-temp2: break
【程序 2】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况, 插入后此元素之后的数,依次后移一个位置。 2.程序源代码: main() { int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j; printf("original array is:\n"); for(i=0;iend) a[10]=number; else {for(i=0;inumber) {temp1=a[i]; a[i]=number; for(j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; temp1=temp2; } break; }

for(i=0.k11:i++) printfl%6d",a门l 【程序3】 题目:将一个数组逆序输出。 1程序分析:用第一个与最后一个交换, 2程序源代码: #define N5 mainD int a[N]=(9,6,5,4,1hltemp. printtl"n original array:\n"]: for(i-0;i printft4d",a[i for(=0:i [temp=a(: a时aN4-1: a[N-i-1]-temp: printt"n sorted array:\n"l for[i-0i printf"%4d",ai;
} } for(i=0;i<11;i++) printf("%6d",a[i]); } 【程序 3】 题目:将一个数组逆序输出。 1.程序分析:用第一个与最后一个交换。 2.程序源代码: #define N 5 main() { int a[N]={9,6,5,4,1},i,temp; printf("\n original array:\n"); for(i=0;i printf("%4d",a[i]); for(i=0;i {temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("\n sorted array:\n"); for(i=0;i printf("%4d",a[i]); }