day03 数组

声明一个5个元素的数组,并且将元素逆置.

示例,34,5,6,7,97,2,4,逆置后为4,2,97,7,6,5,34

#include<iostream>
using namespace std;

int main()		
{
	//实现数组元素逆置
	//创建数组
	int arr[] = { 34,5,6,7,97,2,4 };
	cout << "数组逆置前: " << endl;
	int length = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0;i < length;i++) {
		cout << arr[i] << endl;
	}
	//实现逆置
	/*2.1记录起始下标位置
	2.2记录结束下标位置
	2.3起始下标与结束下标的元素互换
	2.4起始位置++ 结束位置--
	2.5循环执行2.1操作,直到起始位置>=结束位置*/
	int start = 0;
	int end = length - 1;
	while (start < end) {
		int temp = arr[start];
		arr[start] = arr[end];
		arr[end] = temp;

		start++;
		end--;
	}
	//打印
	cout << "数组逆置后:" << endl;
	for (int i = 0;i < length;i++) {
		cout << arr[i] << endl;
	}

	system("pause");

	return 0;	
}

冒泡排序

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
  3. 重复以上的步骤,每次比较次数-1,直到不需要比较
#include<iostream>
using namespace std;

int main()		
{
	//冒泡排序
	//初始化数据
	int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
	int length = sizeof(arr) / sizeof(arr[0]);
	cout << "排序前" << endl;
	for (int i = 0;i < length;i++) {
		cout << arr[i] << endl;
	}
	int max = arr[0],num;
	//对数据进行排列
	/*1.选出一个最小值到数组的最后一位
	* 2.对两个数字进行比较并赋值
	3.循环次数减一*/
	for(int i = 1;i < length;i++) {
		int a = length - 1;
		if (arr[i] < arr[i - 1]) {
			max = arr[i];
			arr[i] = arr[i - 1];
			arr[i - 1] = max;
		}
		if (i == a) {
			length -= 1;
			i = 0;
		}
	}
	//打印
	length = sizeof(arr) / sizeof(arr[0]);
	cout << "排序后" << endl;
	for (int i = 0;i < length;i++) {
		cout << arr[i] << endl;
	}

	system("pause");

	return 0;	
}
上一篇:打印流(PrintWriter)


下一篇:力扣-97 交错字符串