机试复习-3

前言:前面耽误太多时间,2月份是代码月,一定抓紧赶上,每天至少两道题

day1 2024.2.6

1.排序开启:

1.机试考试:排序应用考察

c的qsort     c++的sort

作用:对数组,vector排序;自定义排序规则

#include

2.注意:arr是数组名,当他作为函数参数时,会退化成数组首地址

(1)静态动态数组排序

上图就是对数组进行排序

(2)自定义方式排序、说明我们现在目标就是设计compare,compare可以设计出任何类型

(3)compare是我们的关键部分

返回bool类型;它的参数类型和原来数组类型一致

compare函数内容:当数据不会发生交换时候,返回真

比如我们想要升序:左>又

2.奇偶整数排序

1.题目:3446. 整数奇偶排序 - AcWing题库

2.思路:不就是设计compare吗,那我第一次先把奇偶分开,第二次排序奇数,第三次排序偶数

老师思路机试复习-3_第1张图片

3.代码

//题目:给10个数,把这十个数排序,先输出奇数,降序;再输出偶数,升序
#include
#include
#include
using namespace std;
bool compare1(int lf, int rt)
{
	return lf % 2 == 1 && rt % 2 == 0;//先把奇偶分开
}
bool compare2(int lf, int rt)
{
	return lf % 2 == 1 && rt % 2 == 1 && lf > rt;
}
bool compare3(int lf, int rt)
{
	return lf % 2 == 0 && rt % 2 == 0 && lf < rt;
}
int main()
{
	int a[10];
	for (int i = 0; i < 10; i++)cin >> a[i];
	//现在排序
	//先去写compare
	sort(a, a + 10, compare1);现在他是先输出奇数,在输出偶数
	sort(a, a + 10, compare2);
	sort(a, a + 10, compare3);
	for (int i = 0; i < 10; i++)cout<< a[i]<<' ';
}

你可能感兴趣的:(华为od,华为,算法)