User Tools

Site Tools


java:jfc_algorithms

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:jfc_algorithms [2015/03/17 14:41] gthanosjava:jfc_algorithms [2020/03/17 06:27] (current) gthanos
Line 1: Line 1:
 ====== Αλγόριθμοι ====== ====== Αλγόριθμοι ======
  
-Οι βασικοί αλγόριθμοι του JFC υλοποιούνται στην κλάση [[http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html|Collections]].+Οι βασικοί αλγόριθμοι του Java Collections Framework υλοποιούνται στις κλάσεις [[http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html|java.util.Collections]] (για collections) και [[https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html|java.util.Arrays]] (για πίνακες). Παρακάτω θα δούμε ενδεικτικά παραδείγματα αλγορίθμων από την κλάση [[http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html|java.util.Collections]]. Ανάλογους αλγορίθμους που εφαρμόζονται σε πίνακες παρέχει και η κλάση [[https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html|java.util.Arrays]]
  
-  * **sorting:** [[java:jfc_intf_sort|(δείτε τα παραδείγματα)]]. (N Log(nperformance).+  * **sorting:** (performance NxLog(Ν)).
 <code java Sort.java> <code java Sort.java>
 import java.util.*; import java.util.*;
Line 53: Line 53:
 } }
 </code> </code>
-  * **copy:** Αντιγράφει την μία λίστα πάνω στην άλλη, με την προϋπόθεση ότι η λίστα προορισμού έχει περισσότερα στοιχεία από την λίστα που θα αντιγραφεί.+  * **copy:** Αντιγράφει την μία λίστα πάνω στην άλλη. Εάν η λίστα προορισμού έχει περισσότερα στοιχεία από την αρχική λίστα, τα τελευταία στοιχεία της λίστας προορισμού μένουν ως έχουν. Η αρχική λίστα παραμένει αμετάβλητη, επομένως κάθε κοινό στοιχείο πλέον διαθέτει τουλάχιστον δύο δείκτες προς αυτό, έναν δείκτη από την αρχική λίστα και ένα δείκτη από τη λίστα προορισμού.
 <code java Copy.java> <code java Copy.java>
- 
 import java.util.*; import java.util.*;
  
 public class Copy { public class Copy {
-   public static void main(String args[]) { +  public static void main(String args[]) { 
-      // create two lists     +    // create two lists   
-      List<String> srclst = new ArrayList<String>(5); +    List<String> srclst = new ArrayList<String>(5); 
-      List<String> destlst = new ArrayList<String>(10); +    List<String> destlst = new ArrayList<String>(10); 
-       +     
-      // populate two lists +    // populate two lists 
-      srclst.add("Java"); +    srclst.add("Java"); 
-      srclst.add("is"); +    srclst.add("is"); 
-      srclst.add("best"); +    srclst.add("best"); 
-       +     
-      destlst.add("C++"); +    destlst.add("C++"); 
-      destlst.add("is"); +    destlst.add("is"); 
-      destlst.add("older"); +    destlst.add("older"); 
-      destlst.add("and"); +    destlst.add("and"); 
-      destlst.add("fast!");       +    destlst.add("fast!");     
-       +     
-      // copy into dest list +    // copy into dest list 
-      Collections.copy(destlst, srclst);             +    Collections.copy(destlst, srclst);       
-       +     
-      System.out.println("Value of source list: "+srclst); +    System.out.println("Value of source list: "+srclst); 
-      System.out.println("Value of destination list: "+destlst); +    System.out.println("Value of destination list: "+destlst); 
-      +  } 
 +}
 </code> </code>
   * **swap:** Αντιμεταθέτει τα στοιχεία μεταξύ δύο θέσεων της λίστας.   * **swap:** Αντιμεταθέτει τα στοιχεία μεταξύ δύο θέσεων της λίστας.
Line 120: Line 120:
 </code> </code>
  
-  * **min:** +  * **min:** Επιστρέφει το ελάχιστο στοιχείο. 
-  * **max:**+  * **max:** Επιστρέφει το μέγιστο στοιχείο.
 <code java MinMax.java> <code java MinMax.java>
 import java.util.*; import java.util.*;
Line 133: Line 133:
 } }
 </code> </code>
 +
 +|Προηγούμενο: [[:java:jfc_intf_sorted_set_map | SortedSet και SortedMap ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java: ]] |
java/jfc_algorithms.1426603270.txt.gz · Last modified: 2015/03/17 14:41 by gthanos