알고리즘 3 - 설계 스케줄 링 알고리즘 으로 규정된 시간 내 에 임 무 를 가장 많이 수행 합 니 다 - 욕심 전략
2932 단어 알고리즘 과 데이터 구조
욕심 전략 을 사용 할 수 있 습 니 다. 먼저 첫 번 째 임 무 를 선택 할 수 있 습 니 다. 첫 번 째 임 무 는 어떤 특징 을 가 져 야 총 임 무 를 가장 많이 할 수 있 습 니까?첫 번 째 로 생각 하 는 것 은 임무 의 시작 시간 이 가장 적 다 는 것 이다. 비록 시작 시간 이 가장 적 을 수 있 지만 임무 가 끝 나 는 시간 도 늦 을 수 있다. 그러면 중간 에 더 많은 임 무 를 수행 할 수 있 기 때문에 그렇지 않다.사실은 임무 의 종료 시간 에 따라 가장 적 게 선택해 야 한다. 첫 번 째 임 무 를 종료 시간 으로 선택 하면 그 다음 에 더 많은 시간 을 남 겨 서 다른 임 무 를 선택 할 수 있다. 사실은 한 임 무 를 선택 할 때 start = 임 무 를 선택 하 는 종료 시간 에 해당 한다. 그러면 키 문제 로 전환 된다.
package util;
import java.util.Arrays;
import java.util.Comparator;
public class Study3 {
static class Time{
int start;
int end;
public Time(int start, int end){
this.start = start;
this.end = end;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "[" + start + "," + end + "]";
}
}
static class TimeComparator implements Comparator
Arrays. sort 방법 으로 비교 기 를 사용자 정의 하여 대상 을 비교 정렬 할 수 있 습 니 다. 구체 적 으로 각 대상 의 end 필드 에 따라 정렬 할 수 있 습 니 다.
Arrays 를 사용 하여 대상 정렬 에 사용 할 수 있 습 니 다.
1. 대상 Comparable 인터페이스 구현
2. Comparator 비교 기 사용
대상 이 Comparable 방식 을 실현 하 는 것 은 다음 과 같다.
public class Study3 {
static class Time implements Comparable
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조의 링크 의 실현글 목록 소개 실현 1. 프로필 동적 배열, 스 택 과 대열 의 바 텀 은 모두 정적 배열 에 의존 하고 resize 로 고정 용량 문 제 를 해결한다.그리고 링크 는 진정한 동적 데이터 구조 이다 2. 실현...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.