题目描述
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
输入输出格式
输入格式:
输入包括77行数据,分别表示周一到周日的日程安排。每行包括两个小于1010的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
输出格式:
一个数字。如果不会不高兴则输出00,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 71,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
我的代码
#include<iostream>
using namespace std;
int main()
{
int a[7],b[7],c[7],d[7];
int i=0;
while (i < 7)
{
cin >> a[i]>> b[i];
c[i ] = a[i] + b[i];
d[i] = c[i];
i++;
}
for (i = 6; i>0; i--) //对7组数据排序
{
for (int j = i - 1; j >= 0; j--)
{
if (c[i] > c[j])
{
int tem;
tem = c[i];
c[i] = c[j];
c[j] = tem;
}
}
}
if (c[0] < 9)
cout << 0;
else {
for (i = 0; i <7; i++)
{
if (d[i] == c[0])
{
cout << i + 1;
break;
}
}
}
return 0;
}
/*input:
5 3
6 2
7 2
5 3
5 4
0 4
0 6
output:
3
*/
知识点——冒泡排序
首先要知道冒泡排序的时间复杂度为o(n^2),空间复杂度为o(n)。
排序原理如下图:
for (int i = 0; i < n - 1; i++)//升序
{
for (int j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (i = n-1; i>0; i--) //降序
{
for (int j = i - 1; j >= 0; j--)
{
if (arr[i] > arr[j])
{
int temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
拓展——选择排序
排序原理如下图:
//升序
for (int i = 0; i < n -1 ; i++) {
for (int j = i+1; j < n; j++) {
int temp ;
if(arr[i]>arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}