栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Day5:数组、冒泡排序(轮数和每轮的次数)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Day5:数组、冒泡排序(轮数和每轮的次数)

#include 
#include 
using namespace std;

int main() {

    
	cout << " 第一种方式建立数组 " << endl;
	int arr[5];
	arr[0] = 10;
	arr[1] = 20;
	arr[2] = 30;
	arr[3] = 40;
	arr[4] = 50;     //    对数组中元素分别赋值
	cout << arr[0] << endl;
	cout << arr[1] << endl;
	cout << arr[2] << endl;
	cout << arr[3] << endl;
	cout << arr[4] << endl;          //    访问数组中第五个元素的
	cin.get();

	cout << " 第二种方式建立数组 " << endl;
	int arr0[5] = { 15, 16, 17, 18,  };
	for (int num = 0; num < 5; num++) {
		cout << arr0[ num ] << endl;
	}                        //         若数组中未对全部元素进行初始化,则默认为 0
	cin.get();

	cout << " 第三种方式建立数组 " << endl;
	int arr1[] = { 11, 22, 33, 44, 55, 66, 77, 88, 99, 111 };    //  会自动计算数组元素个数
	for (int num1 = 0 ; num1 < 10; num1++) {                             //  定义数组必须有初始的元素个数
		cout << arr1 [num1] << endl;
	}
	cin.get();

	//  一维数组名名称的用途
	//   ①      可以统计整个数组在内存中的长度
	//                 sizeof ( 数组名 );  或者  sizeof ( 数组名[下标])
	//                 两者相除   得到    元素个数
	//   ②      可以获取数组在内存中的首地址
	int arr2[10] = { 1, 2, 3, 4, 5 , 6, 7, 8, 9, 10 };
	sizeof(arr2);
	sizeof(arr2[0]);
	cout << " 该数组中元素个数为 :" << ((sizeof(arr2)) / (sizeof(arr2[0]))) << endl;
	cout << " 该数组的首地址为 : " << arr2 << endl;
	cout << " 该数组的第一个元素的地址为 : " << &arr2[0] << endl;    // 访问元素地址要加符号   &
	cout << " 该首地址对应的十进制为 : " << (int)arr2 << endl;
	cout << " 该数组的第一个元素的十进制地址为 : " << (int)&arr2[0] << endl;
	cout << " 该数组的第二个元素的十进制地址为 : " << (int)&arr2[1] << endl;
						   //    运行之后会发现两者地址相差 4 , 因为一个元素占用四个字节
	cin.get();

	//   一维数组案例
	//   五只小猪称体重
	int arr3[5] = { 200 , 700, 600 ,755, 394 };
	int pig_max = 0;
		for (int num2 = 0; num2 < 5; num2++) {
			if (pig_max > arr3[num2]) {
				continue;
			}
			else {
				pig_max = arr3[num2];
			}
	}
	cout << " 五只小猪中体重最大的是: " << pig_max << endl;
	cin.get();

	//   数组元素逆置
	int arr4[5] = { 1 , 2 , 3 , 4 , 5 };
	cout << " 数组元素逆置前的为: " <<  endl ;
	for (int num3 = 0; num3 < 5 ; num3++ ) {
		cout << arr4[num3] << "t" ;
	}
	cout << endl;
	int start = 0;     //   起始下标
	int end = ((sizeof(arr4)) / (sizeof(arr4[0]))) - 1;    //  终止下标
	while (start <= end) {
		//     实现元素互换
		int temp = arr4[start];     //    定义一个元素值互换的临时内存空间
		arr4[start] = arr4[end];
		arr4[end] = temp;
		//    实现下标更新
		start++;
		end--;
	}
	cout << " 数组元素逆置后的为: " << endl;
	for (int num4 = 0; num4 < 5; num4++) {
		cout << arr4[num4] << "t";
	}     
	cout << endl;  
	cin.get();


	//     冒泡排序
	//        比较相邻的元素 , 前者大于后者 , 交换
	//        每一对相邻元素作上述工作 , 找到第一个最大值
	//        重复以上步骤 , 每次比较次数  -1   , 直到不需要比较
    int arr5[9] = { 4 , 8 , 2, 0 , 1 , 3 , 7, 9 , 5 };
          cout << " 冒泡排序前数组为 : ";
    for (int num5 = 0; num5 < 9; num5++) {
	      cout << arr5[num5] << "t";
    }
	cout << endl;
   //  冒泡排序算法
   //   排序轮数 = 元素个数 -1
    for (int lun = 0; lun < (9 - 1); lun++) {
   //    内层循环对比   **********   每轮对比次数   =   元素个数   -   排序轮数   -  1
		for (int times = 0; times < (9 - lun - 1); times++) 
		{
			if (arr5[times] > arr5[times + 1])
			{
				int temp = arr5[times];
				arr5[times] = arr5[times + 1];
				arr5[times + 1] = temp;
			}
			else {
				continue;
			}
		}
 	}
	cout << " 冒泡排序后数组为 : ";
	for (int num6 = 0; num6 < 9; num6++) {
		cout << arr5[num6] << "t";
	}
	cout << endl;
	cin.get();

	cin.get();
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号