C++ 프로그래밍: 버블 방법을 사용하여 배열을 내림차순으로 정렬합니다(rand()를 사용하여 10에서 100 사이의 10개 정수 생성).

프로그래밍 주제:

1차원 배열 a를 만들고 다음 작업을 완료하고 입력 및 출력 형식은 아래 그림을 참조하십시오.

(1) 10에서 100 사이의 정수 10개를 생성하여 a에 저장하여 출력, (
2) 버블 방식을 사용하여 배열 a를 내림차순으로 정렬하여 출력,
(3) half search를 사용하여 완료 지정된 데이터(키보드에서 입력)를 검색하여 찾았는지 여부에 대한 정보를 출력합니다.
배열 출력 결과

버블 정렬이란

(1) 인접한 요소 A(I)와 A(I+1)(I=1,2,...N-1)을 쌍으로 비교하고 A(I)>A(I+1)이면 A를 교환합니다. (I)와 A(I+1)의 위치,
(2) 나머지 N-1개 요소에 대해서는 쌍으로 비교하여 동일한 규칙에 따라 위치를 교환하고 N-2개 비교 후 두 번째 최대 Switch (3) 같은 방법 으로 N
-1 "버블 처리"를 수행한 후 매번 Ni 번을 비교하면 모든 시퀀스가 ​​순서대로 정렬됩니다.

C++ 프로그램 참조

#include
#include
#include
사용 네임스페이스 std;
void main()
{ int a[10],i,j,t,top=0,mid,bot=9,x;

//利用rand()产生10个10~100之间的整数,存入a中并输出
//rand() % (b-a+1)+ a ; 表示  a~b 之间的一个随机整数
cout<<"10个10到100间的随机整数为:"<<endl;
for(i=0;i<10;i++)
{
	a[i]=10+rand()%(100-10+1);
	cout<<a[i]<<" ";
}
cout<<endl;
//使用冒泡法,将数组a按降序排列,并输出
for(i=0;i<9;i++)
{
	for(j=0;j<9;j++)
		if(a[j]<a[j+1])
		{
			t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;
		}
}
cout<<"按从大到小排列的结果为:"<<endl;
for(i=0;i<10;i++)
	cout<<a[i]<<" ";
cout<<endl;
//使用折半查找完成指定数据(从键盘输入)的查找,并输出是否查找到的信息
cout<<"请输入要查找的数:";
cin>>x;
while(top<=bot)
{
	mid=(top+bot)/2;
	if(a[mid]==x)
	{
		break;
	}
	else
		if(a[mid]<x)
			bot=mid-1;
		else
			if(a[mid]>x)
				top=mid+1;
}
if(top<=bot)
	cout<<x<<"在第"<<mid+1<<"个位置。"<<endl;
else
	cout<<"该数据不存在。"<<endl;
system("pause");

}

추천

출처blog.csdn.net/weixin_43243112/article/details/92972031