IkWeetGeenNaam
Gebruiker
- Lid geworden
- 16 sep 2004
- Berichten
- 79
Beste mensen..
Ik ben hier al een week mee bezig en nog steeds kom ik er gewoonweg niet uit. Ik heb er voorbeelden van, die ik bij elkaar heb gebracht om het te laten werken. Dit hieronder (de bubblesort) heb ik werkend, ik kan een bestand inlezen en diezelfde bestand op een ander plek laten schrijven, maar de bubblesort blijft maar niet werken. Hij sorteert het dus niet tijdens het schrijven naar de 2e aangegeven locatie!
.. De 2e code, de MergeSort is een nog ergere ramp, die heb ik nog steeds niet werkend kunnen krijgen..
Dus als er vrijwilligers zijn die even naar mijn code zouden willen kijken en me vertellen wat ik verkeerd doe.. Heeeeeeeel graagggg
Mvg!!
Ik
BubbleSort:
MergeSort:
Ik ben hier al een week mee bezig en nog steeds kom ik er gewoonweg niet uit. Ik heb er voorbeelden van, die ik bij elkaar heb gebracht om het te laten werken. Dit hieronder (de bubblesort) heb ik werkend, ik kan een bestand inlezen en diezelfde bestand op een ander plek laten schrijven, maar de bubblesort blijft maar niet werken. Hij sorteert het dus niet tijdens het schrijven naar de 2e aangegeven locatie!
.. De 2e code, de MergeSort is een nog ergere ramp, die heb ik nog steeds niet werkend kunnen krijgen..
Dus als er vrijwilligers zijn die even naar mijn code zouden willen kijken en me vertellen wat ik verkeerd doe.. Heeeeeeeel graagggg
Mvg!!
Ik

BubbleSort:
Code:
/**
*
*/
package VijfdePoging;
import java.io.*;
/**
* @author Administrator
*
*/
public class VijfdePoging {
public static void main(String[] args) {
try {
FileReader r = new FileReader("D:/ADS/text100.txt");
BufferedReader b = new BufferedReader(r);
String[] regel = new String[1000];
int teller = 0;
String huidigeRegel = b.readLine();
while (huidigeRegel != null && teller < regel.length) {
regel[teller] = huidigeRegel;
teller++;
huidigeRegel = b.readLine();
}
b.close();
int herhaling;
int regelTeller;
for (herhaling = 0; herhaling < 999; herhaling++)
for (regelTeller = 0; regelTeller < teller - 1; regelTeller++)
if (regel[regelTeller].compareTo(regel[regelTeller + 1]) > 0) {
String temp = regel[regelTeller];
regel[regelTeller] = regel[regelTeller + 1];
regel[regelTeller + 1] = temp;
}
FileWriter w = new FileWriter("C:/textTEST.txt");
PrintWriter p = new PrintWriter(w);
for (int i = 0; i < teller; i++)
p.println(regel[i]);
p.close();
}
catch (FileNotFoundException e) {
System.out.println("Invoerbestand niet gevonden.");
}
catch (IOException e) {
System.out.println("Algemene invoer/uitvoerfout.");
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Geef twee bestandsnamen mee als opdrachtregel-parameters.");
}
}
}
MergeSort:
Code:
/**
*
*/
package test;
import java.applet.Applet;
import java.io.*;
import java.util.Arrays;
import java.util.List;
/**
* @author Administrator
*
*/
public class LeesSorteer {
public static void main( String[] args ) {
BufferedReader in;
String regel; {
try {
if(gui.listKeuze == 1) lijst = new ArrayList();
else lijst = new LinkedList();
Lezer lezer = new Lezer(lijst);
lezer.lezen((String)gui.fileList.getSelectedItem());
Date tijd = new Date();
duur1 = tijd.getTime();
if(gui.sortKeuze == 1) sorteerder.sortStandard(lijst);
else sorteerder.sortMerge(lijst);
in = new BufferedReader(new FileReader( "D:/ADS/text100.txt" ));
while (( regel = in.readLine()) != null){
StringTokenizer st = new StringTokenizer(regel);
while (st.hasMoreTokens()) {
woord = new Woord();
woord.setWoord(st.nextToken());
lijst.add(woord);
}
}
}
finally{
try {
while ( ( regel = in.readLine() ) != null ) {
System.out.println( regel );
}
in.close();
}
catch( FileNotFoundException e ) {
System.out.println( "Kan bestand niet vinden" );
}
catch( IOException e ) {
System.out.println( "Fout bij het lezen of sluiten bestand" );
e.printStackTrace();{
}
}
public List sortStandard(List lijst){
Object[] objectReeks = lijst.toArray();
lijst.clear();
Arrays.sort(objectReeks);
for(int i=0;i<objectReeks.length;i++){
lijst.add(objectReeks[i]);
}
return lijst;
}
private void mergeSort(Object src[], Object dest[], int low, int high){
int length = high - low;
if(length > 1){
int mid = (low + high) / 2;
mergeSort(dest, src, low, mid);
mergeSort(dest, src, mid, high);
int p=low, q=mid,i=low;
while(p<mid && q<high){
if(((Comparable) src[p]).compareTo((Comparable) src[q]) <=0)
dest[i++] = src[p++];
else
dest[i++] = src[q++];
}
while(p<mid) dest[i++] = src[p++];
while(q<high) dest[i++]= src[q++];
}
}
public List sortMerge(List lijst){
Object[] objectReeks = lijst.toArray();
lijst.clear();
Object hulp[] = (Object[]) objectReeks.clone();
mergeSort(hulp, objectReeks, 0, objectReeks.length);
for(int i=0;i<objectReeks.length;i++){
lijst.add(objectReeks[i]);
}
return lijst;
}
}