一维数组的常用算法源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.数组元素逆置
#include
#include
int main()
{
int a[10],t,i,j;
//随机生成数组元素,并显示
printf("逆置前:");
for(i=0;i<10;i++)
{ a[i]= rand()%100;
printf("%4d",a[i]);
}
printf("\n");
//数组元素逆置,即对称位置交换for(i=0,j=9;i {t=a[i]; a[i]=a[j]; a[j]=t;} printf("逆置后:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); } 2.静态查找 #include #include int main() { int a[10],t,i,j; //随机生成数组元素,并显示 printf("数组元素:"); for(i=0;i<10;i++) { a[i]= rand()%100; printf("%4d",a[i]); } printf("\n"); //输入查找的数 printf("请输入要查找的数:"); scanf("%d", &t); //静态查找:从前往后依次遍历 for(i=0;i<10;i++) if(a[i]==t) break;//找到并退出//输出查找结果 if(i<10) printf("%d在数组a[%d]中。\n",t,i); else printf("%d不在a数组中。\n",t); } 3.二分查找:前提数组有序 #include #include void sort(int a[], int n) { int i,j, t; for(i=0;i for(j=0;j<9-i;j++) if(a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} } int main() { int a[10],t,i,left,right,mid; //随机生成数组元素 printf("数组元素:"); for(i=0;i<10;i++) { a[i]= rand()%100; } //排序 sort(a,10); //输出数组元素 for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); //输入查找的数 printf("请输入要查找的数:"); scanf("%d", &t); //二分查找:每次与范围中间的数比较,根据结果缩小范围left=0; right=9; //起始范围 while(left<=right) //范围内有数据 { mid=(left+right)/2; //计算中间数下标 if(t==a[mid])//找到退出 break; else