C++学习5(一维数组 、冒泡排序算法)
2021/5/19 14:27:11
本文主要是介绍C++学习5(一维数组 、冒泡排序算法),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <iostream> using namespace std; int main() { //数组 :放在一块连续的内存空间中,数组中的每个元素都是相同数据类型 //三种定义方法 /*数据类型 数组名 [数组长度] 数据类型 数组名 [数组长度]={值1,值2.....} 数据类型 数组名 []={值1,值2....}*/ cout << "数组第一种定义方法" << endl; int arr1[5]; //给数组中元素赋值 arr1[0] = 10; arr1[1] = 20; arr1[2] = 30; arr1[3] = 40; arr1[4] = 50; //访问数据元素 cout << arr1[0] << endl; cout << "\n " << endl; cout << "第二种定义方法 " << endl; int arr2[5] = { 10,20,30,40,50 };//如果初始化数据时值填写三个那么剩余两个用0填补 cout << arr2[0] << endl; /*cout << sizeof(arr)/sizeof(int) << endl; 可以动态获取数组中元素个数 使用sizeof可以获取到整个数组的大小,然后除以单个元素大小,即类型大小即可得到个数。 如果类型为T,数组为a,那么sizeof(a) / sizeof(T)就是数组元素个数*/ for (int i=0;i <5;i++) { cout << arr2[i]<<" "; } cout << endl; cout << "\n " << endl; cout << "第三种定义方法 " << endl; //第三种定义时必须有初始长度 int arr3[] = { 10,20,30,4,5,6,8,7,9,40,50,60 }; for (int i = 0;i < sizeof(arr3) / sizeof(int);i++) { cout << arr3[i] << " "; } cout << endl; cout << "\n " << endl; //数组名 cout << "数组名的用途" << endl; //可以统计整个数组在内存中的长度, cout << "数组arr3占用的内存大小(12个元素)" << sizeof(arr3) << endl; cout << "每个元素所占用的内存空间(例:第一个)" << sizeof(arr3[0]) << endl; //可以获取数组在内存中的首地址 cout << "数组的首地址" << (int/*强制把16进制转化为10进制*/)arr3 << arr3 << endl; cout << "数组中第一个元素的地址" << (int)&arr3[0] << &arr3 [0]<< endl; cout << "数组中第二个元素的地址" << (int)&arr3[1] << &arr3 [1]<< endl; //两个元素地址差4字节 //数组名是一个常量,不可以进行赋值操作 cout << "\n " << endl; //一维数组练习案例 cout << "在数组中找最大值" << endl; int arr4[5] = { 300,350,200,400,2500 }; int max = 0; cout << "数组arr4为:"; for (int i = 0;i < 5 ;i++) { cout << arr4[i] << " "; } cout << endl; for (int i = 0;i < 5;i++) { if (max < arr4[i]) { max = arr4[i]; } } cout << "这个数组中的最大值为" << max << endl; //数组元素逆置 cout << "数组元素逆置" << endl; int arr5[5] = { 30,35,26,48,19 }; int start = 0;//记录起始下标 int end = sizeof(arr5) / sizeof(arr5[0])-1; cout << sizeof(arr5) / sizeof(arr5[0]); cout << "数组arr5为:"; for (int i = 0;i < 5;i++) { cout << arr5[i] << " "; } cout << endl; while (start<end) { int temp = arr5[start];//临时值 arr5[start] = arr5[end]; arr5[end] = temp; //下标更新 start++; end--; } cout << "逆置后数组arr5为:"; for (int i = 0;i < 5;i++) { cout << arr5[i] << " "; } cout << endl; cout << "\n " << endl; //冒泡排序 /*作用:最常用的排序算法,对数组中内元素进行排序 1.比较相邻的元素,如果第一个比第二个大,就交换它们两个 2.对每一对相邻的元素做同样的工作,执行完毕后,找到第一个最大值 3.重复以上步骤,每次比较此时-1,知道不需要比较。*/ //排序总轮数= 元素个数 - 1, 每轮对比次数 = 元素个数 - 排序轮数 - 1 cout << "将数组arr6进行升序排序(冒泡排序)" << endl; int arr6[9] = {4,2,8,0,5,7,1,3,9}; cout << "排序前数组arr6位:"; for (int i = 0;i < 9;i++) { cout << arr6[i] << " "; } cout << endl; //轮数循环 排序总轮数= 元素个数 - 1 for (int i = 0;i < 9-1;i++) { //内层循环对比相邻两个元素 每轮对比次数 = 元素个数 - 排序轮数 - 1 for (int j = 0;j < 9 - i - 1;j++) { if (arr6[j] > arr6[j + 1]) { int temp1 = arr6[j]; arr6[j] = arr6[j + 1]; arr6[j + 1] = temp1; } } } cout <<"排序后数组arr6为:"; for (int i = 0;i < 9;i++) { cout << arr6[i] << " "; } cout << endl; cout << "\n " << endl; system("pause"); return 0; }
这篇关于C++学习5(一维数组 、冒泡排序算法)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置