声明一个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,直到不需要比较
#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;
}