C 언어 병합 과일 - 욕심 알고리즘

/ * 과일의 몇 가지 더미가있다. 때마다 당신은 큰 더미를 형성하기 위해 함께 물건의 더미를 이동합니다. 작업 당 에너지 소비는 과일 더미의 총 중량이다. 어떻게 함께 쌓여있는 모든 과일을 넣어 최소한의 에너지를 소비하는? * /

이 질문 우리는 먼저 주제, 순서가 배열 나중에 다시 함께 이동하는 이동 때마다 이해해야합니다, 질문입니다.

1 #INCLUDE <STDIO.H>
 2  
3  INT 의 main () {
 4      
5      의 INT t, N, m = 0 ;
6      INT 난 = 0 , J = 0 ;
도 7      는 scanf ( " %의 D ' , N);
8      INT의 합 [N];
9  
(10)      에 대한이 (전 = 0 ; I <N; I ++ ) {
 11          는 scanf ( " %의 D " , 합계 [I]);
(12)      }
 (13)      
(14)      에 대한이 (ⅰ = 0; I <N- 1 ; I ++ ) {
 15          에 대한 (j = 0 ; J <NI- 1 ; J ++ ) {
 16 일              경우 (합 [J]> 합 [J + 1 ]) {
 17                  T = 합 [J]
18                  합 [J] = 합계 [J + 1 ];
19                  합 [J + 1 = t; 
20              }
 21          }
 22      }
 (23)      에 대한이 (전 = 1 ; I <N; ++ I) {
 24          합 [I] + = 합 [I- 1 ];
(25)         m + = 합 [I];
(26)          에 대한 (j = 1이 + 1 , J <N && 합 [J] <합 [J = 1 ]; ++ j)에 {
 27              T = 합 [J = 1 ];
28              합 [J - 1 ] = 합계 [J]
29              합 [J] = t;
30          }
 31      } 
 32      
33      의 printf ( " %의 D ' , m);
34      
35      복귀  0 ;
36 }

 

추천

출처www.cnblogs.com/wleaf/p/12004005.html