
int pass =0;//扫描轮数计数 for(int i=0; i<128; i++) for(int j=0; j bucket[i][j] = \int strLength=0, doo=0; StringBuffer sb;
//补足参差的字符串,使大家长度相同 for(int i=0; i
strLength = Math.max(strLength,DataArray[i].length()); for(int i=0; i
if(DataArray[i].length() sb = new StringBuffer(DataArray[i]); for(int j=0; j sb.append((char)doo); DataArray[i] = sb.toString(); } do { for(int i=0;i<128;i++) { bucket[i][DataInputed] = \} for(int i=0;i { int ch; if(DataArray[i].length()-1 >= pass) ch= DataArray[i].charAt(DataArray[i].length()-1-pass); else ch = 0; if(ch>=128 || ch<0) { showStatus(\输入的字符超出了处理范围,只能处理ASCII字符串。\return; } //去除大小写的影响 if(ch>='A' && ch<='Z') { System.out.println(ch + \ch += 'a' - 'A'; System.out.println(ch + \} int count = Integer.parseInt(bucket[ch][DataInputed]); bucket[ch][count++] = DataArray[i]; bucket[ch][DataInputed] = Integer.toString(count); } int k=0; for(int i=0;i<128;i++)//集中扫描 for(intj=0;j //记录本轮选择后数据排列情况 SortPro[pass][i] = DataArray[i]; pass++; }while(Integer.parseInt(bucket[0][DataInputed])!=DataInputed; //一轮扫描 } } 知识点:桶排序的使用。 3.难度:难 答案:源程序:Chazhao.java import java.applet.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Chazhao extends Applet implements ActionListener { Label prompt = new Label(\请输入欲插入的字符串:\TextField input = new TextField(5); Vector dataVector = new Vector(); public void init() { add(prompt); add(input); dataVector.removeAllElements(); input.setText(\ input.addActionListener(this); } public void paint(Graphics g) //打印 { int i=0; for(Enumeration e = dataVector.elements(); e.hasMoreElements(); i++) { try { g.drawString((String)(e.nextElement()), 10+80*i, 40); } catch(NullPointerException npe) { System.out.println(i); } } } public void actionPerformed(ActionEvent e) { if(e.getSource() == input) //用户在input中输入并回车时 { //记录数据 String s = input.getText(); int low=0, high=dataVector.size()-1, mid; while(low <= high) { mid = (high + low)/2; if(((String)(dataVector.get(mid))).compareToIgnoreCase(s) == 0) { dataVector.insertElementAt(new String(s),mid); System.out.println(s + \ break; } else if(((String)(dataVector.get(mid))).compareToIgnoreCase(s) > 0) high = mid-1; else low = mid+1; } if(low>high) { dataVector.insertElementAt(new String(s),low); System.out.println(s + \} input.setText(\repaint(); } } } 知识点:查找算法的使用。 4.难度:适中 答案:源程序:He.java import java.applet.*; import java.awt.*; import java.awt.event.*; public class He extends Applet implements ActionListener { final int ARRAY_LENGTH = 10; final String labelPrompt[] = {\最大值:\最小值:\\总和:\平均值:\ int myArray[] = new int[ARRAY_LENGTH]; int count=0, max=0, min=0, sum=0; double avg=0.0; TextField inputTfd = new TextField(10); Label inputLbl = new Label(\请输入数据并回车:\Label maxLabel = new Label(labelPrompt[0] + \Label minLabel = new Label(labelPrompt[1] + \Label sumLabel = new Label(labelPrompt[2] + \Label avgLabel = new Label(labelPrompt[3] + \public void init() { for(int i=0; i { myArray[i] = 0; } add(inputLbl); add(inputTfd); add(maxLabel); add(minLabel); add(sumLabel); add(avgLabel); inputTfd.addActionListener(this); } public void actionPerformed(ActionEvent ae) { TextField temp = (TextField)(ae.getSource()); if(temp == inputTfd) { try { int value = Integer.parseInt(temp.getText()); if(count == 0) { max = value; min = value; sum = value; avg = value; } else { max = Math.max(value,max); min = Math.min(value,min); sum = (count avg = ((double)(sum)) / (count } myArray[count % ARRAY_LENGTH] = value; count++; maxLabel.setText(labelPrompt[0] + max); minLabel.setText(labelPrompt[1] + min); sumLabel.setText(labelPrompt[2] + sum); avgLabel.setText(labelPrompt[3] + avg); inputTfd.setText(\} catch(NumberFormatException nfe) { inputTfd.setText(\格式错误\} } else { showStatus(\事件\未定义处理操作\} } } 知识点:对数组的基本操作。 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库第五章 判断题-数组(3)在线全文阅读。
相关推荐: