赞
踩
插入法排序(升序)
#include<stdio.h> void main() { int i,a[10],temp,pos; printf("为数组元素赋值:\n"); for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=1;i<10;i++) { temp=a[i]; pos=i-1; while((pos>=0) && (temp<a[pos])) { a[pos+1]=a[pos]; pos--; } a[pos+1]=temp; } for(i=0;i<10;i++) { printf("%d\t",a[i]); } }
交换法排序(降序)
#include<stdio.h> void main() { int a[10]; int i,j,temp; printf("为数组元素赋值:\n"); /*从键盘为数组元素赋值(成绩)*/ for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } /*从小到大排序*/ for(i=0;i<10;i++)//设置外层循环 { for(j=i+1;j<10;j++)//设置内层循环 { if(a[j]>a[i])//如果前一个数比后一个数大 { /*交换两个数组元素的值*/ temp=a[i]; a[i]=a[j]; a[j]=temp; } } } //输出数组 for(i=0;i<10;i++) { printf("%d\t",a[i]);//输出制表位 if(i==4)//如果是第五个元素 printf("\n");//输出换行 } printf("\n"); }
冒泡法排序 (升序)
#include<stdio.h> void main() { int a[10]; int i,j,temp; printf("为数组元素赋值:\n"); /*从键盘为数组元素赋值(成绩)*/ for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } /*从小到大排序*/ for(i=0;i<10;i++)//设置外层循环 { for(j=9;j>=i;j--)//设置内层循环 { if(a[j]<a[j-1])//如果前一个数比后一个数大 { /*交换两个数组元素的值*/ temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } } } //输出数组 for(i=0;i<10;i++) { printf("%d\t",a[i]);//输出制表位 if(i==4)//如果是第五个元素 printf("\n");//输出换行 } printf("\n"); }
选择法排序(降序)
#include<stdio.h> void main() { int a[10]; int i,j,max,pos; printf("为数组元素赋值:\n"); /*从键盘为数组元素赋值(成绩)*/ for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } /*从高到低排序*/ for(i=0;i<10;i++)//设置外层循环 { max = a[i];//设置当前元素为最大值 pos = i;//记录元素位置 for(j=i+1;j<10;j++)//内层循环i+1到9 { if(a[j]>max)//如果当前元素比最高值还要高 { max = a[j];//重新设置最高值 pos = j;//记录元素位置 } } /*交换两个元素值*/ a[pos] = a[i]; a[i] = max; } //输出数组 for(i=0;i<10;i++) { printf("%d\t",a[i]);//输出制表位 if(i==4)//如果是第五个元素 printf("\n");//输出换行 } printf("\n"); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。