[JAVA] J'ai essayé d'augmenter la vitesse de traitement avec l'ingénierie spirituelle

introduction

――Veuillez ne pas vraiment prendre cet article. ――Cet article est une impression individuelle et ne montre ni l'effet ni l'efficacité.

Contexte

En tant que fournisseur de services dans le monde, l'augmentation de la vitesse de traitement est une question très importante. Si vous souhaitez simplement augmenter la vitesse de traitement, vous pouvez le résoudre en augmentant la puissance de la machine, mais il est difficile de le faire car il ne sera pas rentable en tant que service. Par conséquent, je viserai à augmenter la vitesse de traitement en écrivant bien le code. De plus, cette fois, nous utiliserons le tri, qui est facile à utiliser comme exemple.

Solution

Nous présenterons l'idée de programmation spirituelle et viserons à accélérer le programme.

Sélection de la langue

Sélectionnez Java pour prendre les mesures décrites ci-dessous.

Sélection d'algorithme de tri

Si vous avez l'idée de la programmation spirituelle, il est évident que tout code sera explosif. L'algorithme de tri utilise le tri bogo, qui a un meilleur temps de calcul.

Mesures qui semblent spirituelles (y compris une interprétation unique)

Lors de la rédaction d'un commentaire, placez-le entre / * * / au lieu de //. Ce dernier est une paire d'éléments, il ressemble donc à un chien gardien et semble très propice. Le point-virgule (;) signifie "fin" et est très malchanceux et devrait être supprimé. Assurez-vous de prier avant de le faire. Évitez l'annihilation.

résultat

C'est devenu explosif. (C'est une impression individuelle.) De plus, si vous mesurez le temps d'exécution ici, Ne le mesurez jamais car cela vous rendra méfiant à l'égard du programme et le rendra de mauvaise humeur et ralentira. Le code est ci-dessous. Si vous pouvez augmenter votre spiritualité, vous pouvez la réécrire de plus en plus. (Dans ce cas, veuillez réécrire sans perdre votre appréciation et votre confiance dans le programme. Cela nuira à votre humeur.) Je ne fais pas d'expériences de contrôle parce que je fais confiance à ce programme.

/*Le gars qui a écrit le genre bogo qui semble être compatible avec la programmation spirituelle, exprimant la «fin» et supprimant le point-virgule malchanceux*/
/*C'est O(n)Je sens que la probabilité de pouvoir trier par*/
/*Commentaire//Cela semble être plus propice en le prenant en sandwich avec des éléments appariés à la place!(À la Komadog) */
public class Bogo {
    public static void main(String... args) throws Exception {
        /*Parce que throws Exception ne fonctionne pas dans les expressions lambda*/
        for (java.util.ArrayList<Integer> data : new java.util.ArrayList[]{new java.util.ArrayList(java.util.Arrays.asList(1, 3, 2, 4, 0))}) {
            while (true) {
                /*Vérifier si trié*/
                if (java.util.stream.IntStream.range(1, data.size())
                        .mapToObj(i -> data.get(i - 1) > data.get(i))
                        .noneMatch(b -> b)) {
                    /*Afficher si trié*/
                    if (java.util.stream.Stream.of(
                            data.stream()
                                    .map(String::valueOf)
                                    .collect(java.util.stream.Collectors.joining(", "))
                    )
                            .peek(System.out::println)
                            .count() == 0) {
                    }

                    if (System.class.getDeclaredMethod("exit", int.class).invoke(null, 0) == null) {
                    }
                } else {
                    /*Non trié*/
                    if (java.util.stream.Stream.of(new java.util.Random(System.currentTimeMillis()))
                            .peek(rand -> java.util.stream.Stream.of(rand.nextInt(data.size()))
                                    .forEach(n -> java.util.stream.Stream.of(rand.nextInt(data.size()))
                                            .forEach(m -> java.util.Collections.swap(data, n, m))))
                            .count() == 0) {
                    }
                }
            }
        }

    }
}

Tsukkomi qui semble être commun

Est-ce que Kotlin va bien?

Ouaip

Les références

http://blog.mirakui.com/entry/20100301/1267464280

Recommended Posts

J'ai essayé d'augmenter la vitesse de traitement avec l'ingénierie spirituelle
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
J'ai essayé d'interagir avec Java
J'ai essayé d'expliquer la méthode
[Rails] J'ai essayé d'implémenter le traitement par lots avec la tâche Rake
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
[Rubiy] J'ai essayé de résumer le traitement de la boucle ce soir [fois, pause ...]
J'ai essayé d'implémenter la fonction de prévisualisation d'image avec Rails / jQuery
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de migrer le traitement vers VS Code
J'ai essayé de démarrer avec Web Assembly
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
[iOS] J'ai essayé de créer une application de traitement de type insta avec Swift
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
J'ai essayé de faire une authentification de base avec Java
J'ai essayé de gérer la configuration des jambes de force avec Coggle
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
J'ai essayé de gérer les informations de connexion avec JMX
J'ai essayé d'organiser la session en Rails
J'ai essayé de configurer tomcat pour exécuter le servlet.
J'ai essayé de casser le bloc avec java (1)
Je souhaite effectuer un traitement d'agrégation avec spring-batch
J'ai essayé de comparer la technologie d'infrastructure des ingénieurs ces jours-ci avec la cuisine.
J'ai essayé de lire et de sortir CSV avec Outsystems
J'ai essayé d'implémenter TCP / IP + BIO avec JAVA
[Java 11] J'ai essayé d'exécuter Java sans compiler avec javac
05. J'ai essayé de supprimer la source de Spring Boot
J'ai démarré MySQL 5.7 avec docker-compose et j'ai essayé de me connecter
J'ai essayé de réduire la capacité de Spring Boot
J'ai essayé de démarrer avec Spring Data JPA
Je souhaite utiliser le mode sombre avec l'application SWT
J'ai essayé de dessiner une animation avec l'API Blazor + canvas
J'ai essayé OCR de traiter un fichier PDF avec Java
J'ai essayé d'implémenter Sterling Sort avec Java Collector
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
J'ai essayé de vérifier le fonctionnement de la requête http (Put) avec Talented API Tester
J'ai essayé d'étudier le mécanisme d'Emscripten en l'utilisant avec un solveur allemand
J'ai essayé d'implémenter la fonction similaire par communication asynchrone
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
J'ai essayé de moderniser une application Java EE avec OpenShift.
J'ai essayé DI avec Ruby
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
J'ai essayé de résumer les bases de kotlin et java