Cet article décrit la mise en œuvre Java de l'algorithme de valeur maximale pour trouver la somme des sous-arraies. Partagez-le pour votre référence, comme suit:
Généralement, C et C ++ sont utilisés plus fréquemment dans la mise en œuvre de l'algorithme. Ci-dessous, nous mettons en œuvre des algorithmes via la langue java, ce qui nous fait nous sentir plus intimes.
sujet:
Entrez un tableau de mise en forme, avec des nombres positifs et négatifs dans le tableau.
Un ou plusieurs entiers consécutifs dans un tableau forment un sous-réseau, chaque sous-réseau a une somme.
Trouvez la valeur maximale de la somme de tous les sous-réseaux.
Par exemple, le réseau d'entrée est de 1, -2, 3, 10, -4, 7, 2, -5, et le plus grand sous-réseau est de 3, 10, -4, 7, 2,
Par conséquent, la sortie est la somme 18 du sous-réseau.
Code d'implémentation:
Package Arrdemo; public class maxSub {public static void main (String [] args) {// TODO Méthode générée automatique Stub findmaxSubarySum1 (); } public static void findMaxSubarySum1 () {// sum est la somme du sous-réseau int sum = 0; // Max est la somme maximale du sous-réseau int max = 0; // Position de démarrage de la sous-bande maximale int startPOS = 0; // Position finale de la sous-bande maximale int EndPos = 0; int [] array = {-1, 2, -3, 12, -5, -1, 9, -2}; for (int i = 0; i <array.length; i ++) {sum + = array [i]; // sum if (sum <0) {// si la somme actuelle est négative, effacez-la et la position de départ commence à partir de la position suivante SUM = 0; startPos = i + 1; } if (sum> max) {// Si la somme est plus grande que le maximum précédent, attribuez la somme à max et enregistrez la dernière position max = sum; endpos = i + 1; }} System.out.println ("Résultat du test Wulin.com:"); System.out.println ("Max:" + Max); System.out.println ("startPOS:" + startPos + ", endPOS:" + (endPOS - 1)); }}Résultats en cours:
Pour plus d'informations sur les algorithmes Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Structure de données Java et tutoriel d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.