找数组中所有值的最大值:
#include<iostream>
using namespace std;
int main() {
int arr[5] = {300,350,200,400,250}; // 数组
int max = 0; //先认定一个最大值为0
for (int i = 0; i < 5; i++) { // 访问数组中每个元素
if (arr[i] > max) { // 如果有比我认定的值大的
max = arrr[i]; // 将值进行更换
}
}
return 0;
}
将数组中的元素进行逆置:
#include<iostream>
using namespace std;
int main() {
int arr[5]= {1,3,2,5,4};
cout <<"数组逆置前:"<<endl;
for(int i=0;i<5;i++){
cout<<arr[i]<<endl;
}
int start = 0; // 起始下标
int end = sizeof(arr) / sizeof(arr[0])-1;// 结束下标
while(start < end){ // 起始位置小于结束位置
// 实现元素互换
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
//下标更新
start++;
end--;
}
cout <<"数组逆置后:"<<endl;
for(int i=0;i<5;i++){
cout<<arr[i]<<endl;
}
return 0;
}
冒泡排序:对组内元素进行排序
#include<iostream>
using namespace std;
int main() {
// 利用冒泡排序实现升序序列
int arr[9] = {4,2,8,0,5,7,1,3,9}
cout <<"排序前:" << endl;
for (int i = 0; i < 9; i++) {
cout<<arr[i]<<"";
}
cout << endl;
// 开始冒泡排序,总共排序轮数为元素个数-1
for (int i = 0; i < 9 - 1; i++) {
//内层循环对比 次数=元素个数-当前轮数-1
for (int j = 0; j < 9 - i - 1; j++) {
// 如果第一个数字比第二个数字大,交换两个数字
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
cout << "排序后:" << endl;
for (int i = 0; i < 9; i++) {
cout << arr[i] << "";
}
cout << endl;
}
使用指针、数组、函数联动写冒泡排序
#include<iostream>
using namespace std;
void bubbleSort(int* arr, int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void printArray(int * arr, int len) {
for (int i = 0; i < len; i++) {
cout << arr[i] << endl; // 循环遍历输出
}
}
int main() {
// 创建数组
int arr[10] = { 4,3,6,9,1,2,10,8,7,5 };
int len = sizeof(arr) / sizeof(arr[0]);
// 创建函数,实现冒泡排序
bubbleSort(arr, len);
// 打印排序后的数组,使用数组作为输入
printArray(arr,len);
return 0;
}