C++ 光速入门指南day05
2021-06-09 本文已影响0人
__method__
数组
练习:五只⼩猪称体重 案例描述: 在⼀个数组中记录了五只⼩猪的体重,如:int arr[5] = {300,350,200,400,250}; 找出并打印最重的⼩猪体重。
#include <iostream>
#include<cmath>
using namespace std;
int main(){
// 五只小猪
int arr[5] = {300,350,200,400,250};
int maxWeight = 0;
for (int i = 0; i < (sizeof(arr)/sizeof(arr[0])); i++) {
int onePigWeight = arr[i];
// 判断
if (onePigWeight > maxWeight)
maxWeight = onePigWeight;
}
cout<< maxWeight<< endl;
}
- 数组元素逆置 案例描述:请声明⼀个5个元素的数组,并且将元素逆置. (如原数组元素为:1,3,2,5,4;逆置后输出结果为:4,5,2,3,1);
#include <iostream>
#include<cmath>
using namespace std;
int main(){
// 交换两个变量
// int a = 100;
// int b = 300;
// int temp;
// temp = a;
// a = b;
// b = temp;
// cout<< a<< endl;
// cout<< b<< endl;
int arr[] = {1, 3, 5, 2, 4, 29, 47, 33};
int len = sizeof(arr)/sizeof(arr[0]);
int temp;
for (int i = 0; i < len/2 ;i++) {
temp = arr[i];
arr[i] = arr[len-1-i];
arr[len-1-i] =temp;
}
for (int i = 0; i < len ;i++) {
cout<< arr[i] << " ";
}
}
2
#include <iostream>
#include<cmath>
using namespace std;
int main(){
int arr[] = {1, 3, 5, 2, 4, 29, 47, 33};
int len = sizeof(arr)/sizeof(arr[0]);
for(int min=0, max=len-1; min<=max;max--, min++){
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
for (int i = 0; i < len ;i++) {
cout<< arr[i] << " ";
}
}
冒泡排序
- 比较相邻元素, 如果第一个比第二个大, 就交换他们两个
- 对每一对相邻的元素做同样的工作, 执行完毕后, 找到第一个最大值
- 重复以上步骤, 每次比较 次数 - 1, 直到不需要比较
将数组 { 4,2,8,0,5,7,1,3,9 } 进⾏升序排序
#include <iostream>
#include<cmath>
using namespace std;
int main(){
int arr[] = { 4,2,8,0,5,7,1,3,9 };
int len = sizeof(arr)/sizeof(arr[0]);
for (int i = 0; i < len-1 ; i++) {
for (int j = 0; j < len-i-1 ; j++) {
// 没有 a[10] 比较到 a[8] a[9]
if(arr[j] > arr[j+1]){
// 交换
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < len ;i++) {
cout<< arr[i] << " ";
}
}
选择排序
先把最小的拿出来
剩下的, 再把最小的拿出来
剩下的, 再把最小的拿出来
。。。
每次选择还没处理的元素最小的元素
#include <iostream>
#include<cmath>
using namespace std;
int main(){
int arr[] = { 4,2,8,0,5,7,1,3,9 };
int len = sizeof(arr)/sizeof(arr[0]);
for (int i = 0; i < len ; i++) {
int minIndex = i;
for (int j = i; j < len; j++) {
if(arr[j] < arr[minIndex])
minIndex = j;
}
//交换
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
for (int i = 0; i < len ;i++) {
cout<< arr[i] << " ";
}
}