一道算法题引起的思考

大家好,我是一只学弱狗,记录学习的点点滴滴!

优质文章

优质专栏


  蓝桥杯马上就又开始了,赶紧准备准备以不至于被虐的太惨,从一个简单的算法题开始。

题目描述
  有n项任务,每项任务加工时间已知,从0时刻开始陆续安排到一台机器上加工,每个任务的完成时间是从0时刻到任务加工截止的时间,求总完成时间(所有任务完成时间之和)最短的安排方案。

#include <iostream>
//不解释
#include <algorithm>
//从文件中读取测试数据
#include <conio.h>
using namespace std;
#define N 101

//任务的个数
int n;

//从大到小排序 
int cmp(int a,int b){
	return a>b;
}

void process(int *data){
	//默认递增排序
	sort(data+1,data+n+1);
	//sort(data+1,data+n+1,cmp);
	//从大到小排序 
}

int main(){
	//从文件中读取数据
	freopen("调度问题.txt","r",stdin);
	cin>>n;
	int * times = new int[n+1];//各个任务的执行时间
	int sum = 0;
	for(int i=1;i<=n;i++) cin>>times[i];
	process(times);
	for(int i=1;i<=n;i++) cout<<times[i]<<" ";
	cout<<endl;	
	for(int i=1;i<=5;i++){
		for(int j=1;j<=i;j++){
			sum+= times[j];
		}
		cout<<"第"<<i<<"个任务:"<<sum<<endl; 
	}
	//内存空间释放 
	delete[] times;
	times = NULL;
	return 0;
}

  主要是看一下排序,我个人不喜欢用数组的第一个下标,所以在排序时不需要它,假设数组长度为6,则下标是0-5,不要下标0,所以需对数组索引从1-5进行排序,画一下,让自己注意下排序的索引,对1-5的元素排序,应该从data+1到data+5+1
在这里插入图片描述  sort的一个函数重载可以使用一个cmp方法来实现比较策略,是按照从大到小比较还是从小到大比较,这是如何实现的呢?哦,原来是一种设计模式,策略模式,我拿Java语言来说。
  在Java语言中,也有一个java.util.Comparator接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只学弱狗!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值