Tässä ohjelmassa opit lajittelemaan elementtisanat leksikografisessa järjestyksessä for for -silmukalla ja jos muuta Kotlinissa.
Esimerkki: Ohjelma merkkijonojen lajittelemiseksi sanakirjajärjestyksessä
fun main(args: Array) ( val words = arrayOf("Ruby", "C", "Python", "Java") for (i in 0… 2) ( for (j in i + 1… 3) ( if (words(i).compareTo(words(j))> 0) ( // swap words(i) with words(j( val temp = words(i) words(i) = words(j) words(j) = temp ) ) ) println("In lexicographical order:") for (i in 0… 3) ( println(words(i)) ) )
Kun suoritat ohjelmaa, tulos on:
Leksikografisessa järjestyksessä: C Java Python Ruby
Yllä olevassa ohjelmassa 5 lajiteltavan sanan luettelo tallennetaan muuttujaan, sanoihin.
Sitten, silmukka läpi jokaisen sanan (sanat (i)) ja vertaa sitä kaikkiin sanoihin (sanat (j)) sen jälkeen taulukossa. Tämä tehdään käyttämällä merkkijonon vertailumenetelmää ().
Jos vertailun () paluuarvo on suurempi kuin 0, se on vaihdettava sijaintiinsa, ts. Sanat (i) tulevat sanojen (j) jälkeen. Joten sanat (i) sisältävät jokaisessa iteraatiossa aikaisimman sanan.
SuoritusvaiheetToisto | Alkusanat | i | j | sanat() |
---|---|---|---|---|
1 | ( "Ruby", "C", "Python", "Java" ) | 0 | 1 | ( "C", "Ruby", "Python", "Java" ) |
2 | ( "C", "Ruby", "Python", "Java" ) | 0 | 2 | ( "C", "Ruby", "Python", "Java" ) |
3 | ( "C", "Ruby", "Python", "Java" ) | 0 | 3 | ( "C", "Ruby", "Python", "Java" ) |
4 | ( "C", "Ruby", "Python", "Java" ) | 1 | 2 | ( "C", "Python", "Ruby", "Java" ) |
5 | ( "C", "Python", "Ruby", "Java" ) | 1 | 3 | ( "C", "Java", "Ruby", "Python" ) |
Lopullinen | ( "C", "Java", "Ruby", "Python" ) | 2 | 3 | ( "C", "Java", "Python", "Ruby" ) |
Tässä on vastaava Java-koodi: Java-ohjelma sanojen lajittelemiseksi sanastollisessa järjestyksessä