一维数组的常用算法源代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

if(t

right=mid-1;

else

left=mid+1;//范围缩小变为中间数的右侧

}

//输出查找结果

if(left<=right)

printf("%d在数组a[%d]中。\n",t,mid);

else

printf("%d不在a数组中。\n",t);

}

4.删除指定位置(下标)数据

#include

#include

int main()

{

int a[10],t,i,j,n=10;

//随机生成数组元素并显示

printf("数组元素:\n");

for(i=0;i

{ a[i]= rand()%100;

printf("%4d",a[i]);

}

printf("\n");

//输入删除的下标

printf("请输入要删除数的下标:");

scanf("%d", &t);

//指定位置后一个开始,所有数据前移

for(j=t+1;j

a[j-1]=a[j];

n--; //数组元素有效个数减1 //输出删除后的数据

printf("删除后:\n");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

}

//5.删除指定数据(值):找数据,删除(两步) #include

#include

int main()

{

int a[10],t,i,j,n=10;

//随机生成数组元素并显示

相关文档
最新文档