import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;import java.applet.Applet;import java.awt.Graphics;import java.io.*;public class langegetallen extends Applet{ public void init() { sorteerder(); } public void sorteerder(){ String[] waarden = new String[6]; waarden[0]="9"; waarden[1]="3"; waarden[2]="253"; waarden[3]="845"; waarden[4]="054"; waarden[5]="10852253532"; //zoek langste getal en kortste int langstegetal=waarden[0].length(); int kortstegetal=waarden[0].length(); for(int i=1; i<waarden.length;i++) { if (waarden[i].length()>langstegetal) langstegetal=waarden[i].length(); if (waarden[i].length()<kortstegetal) kortstegetal=waarden[i].length(); } //maak een array aan met genoeg stacks om getallen van alle lengtes op te sorteren Stack<String> [] stackArray = new Stack [langstegetal-kortstegetal+1]; //gooi de array vol met stacks for(int i=0; i<stackArray.length; i++) { stackArray[i] = new Stack<String>(); } //gooi de stacks vol met waarden van de goede lengte for (int i = waarden.length-1; i >= 0; i--) { stackArray[waarden[i].length()-kortstegetal].push(waarden[i]); } for (int i = 0; i <=langstegetal-kortstegetal; i++) { //maak van de stack een array zodat hij kan worden gesorteerd. String [] sorteerArray = new String [stackArray[i].size()]; while(!stackArray[i].isEmpty()) {int index = 0; sorteerArray[index] = stackArray[i].pop(); index++; } if (!(sorteerArray[0]==null)) radixsort(sorteerArray, sorteerArray[0].length()-1); } } public void radixsort(String [] waarden, int maxint) { if(waarden.length != 0) { for(int i=maxint;i>=0;i--) countingsort(waarden, i); } } public void countingsort(String[] waarden, int compare) {int j, i, k; int[] turf = new int[10]; String[] nwaarden = new String[waarden.length]; for(j=0; j<=9; j++) turf[j]=0; for(i=0; i<waarden.length; i++) { try{ turf[waarden[i].charAt(compare)- (int) '0']++; } catch{ (Exception e); } alternative{break;} } for(k=1;k<turf.length; k++) { turf[k]=turf[k]+turf[k-1]; } for(j=waarden.length-1; j>=0; j--) { nwaarden[turf[waarden[j].charAt(compare)- (int) '0']-1]= waarden[j]; turf[waarden[j].charAt(compare)- (int) '0']--; } for(int h=0; h<waarden.length;h++) System.out.println(nwaarden[h]); }}