입력은 실수 x1, x2, ..., x2n의 시퀀스입니다. 이 수를 n 쌍으로 쌍으로 만듭니다. i 번째 쌍 (i = 1, 2, ..., n)에 대해 Si는 그 쌍의 숫자의 합을 나타냅니다. (예를 들어, x (2i-1)과 x2i를 i 번째 쌍으로하면, Si = x (2i-1) + x2i). 우리는 Maxi [Si]가 최소화되도록이 수를 짝지기를 원합니다. 이 문제를 해결하기위한 욕심 많은 알고리즘을 설계하십시오.최대 합을 최소화하는 숫자를 쌍으로 만드는 욕심 많은 알고리즘
그건 질문입니다. 내 솔루션은 간단하게 숫자를 정렬하고 첫 번째 요소와 add-one/subtract-one 색인을 쌍으로 만들고 반복하는 것입니다. 알고리즘은 각 쌍을 최적화하려고 시도하므로 욕심을 먹습니다. 이 작업을 수행 할 선형 시간 알고리즘이 있는지 궁금합니다.
추신 : 이것은 숙제는 아니지만,이 점이 매우 비슷하다는 것을 이해합니다.
답변은 지금 삭제되었지만 게시했습니다 : 여기 [link ] (http://stackoverflow.com/questions/8970747/regarding-complexity-if-comparison-based-sorting-algorithm-used) * 임의의 요소 *에 대한 비교 기반의 정렬 기준에 관심이있는 모든 사용자를위한 것입니다. – cctan
나는 그곳에서 무슨 일이 일어 났는지 모른다. 내 대답과 함께 해답이 사라진 것 같다. 링크를 주셔서 감사합니다, 나는 임의의 요소에 대한 비교 기반의 정렬이 nlgn의 하한을 가지고 있다는 것을 알고 있습니다. 내가 궁금해하는 점은 두 숫자의 쌍을 선형으로 연결하여 합이 최소가되도록하는 것입니다. 나는 당신이 말하려고하는 것은 그것을 취하지 않고 다른 방법이 없다는 것입니다. 정렬과 소팅은 nlgn의 하한이 있습니까? – user183037
해결책이 정확합니다. 숫자를 정렬하고 처음과 마지막으로 반복적으로 페어링하십시오. 원한다면 증거를 제공 할 수 있습니다. – ElKamina