当前位置: 代码迷 >> Java相关 >> 关于排序的棘手问题
  详细解决方案

关于排序的棘手问题

热度:97   发布时间:2011-05-25 16:15:32.0
关于排序的棘手问题
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class E_2{
    public static void main(String args[]){
        MathWindow win=new MathWindow();
    }
}
class MathWindow extends JFrame implements ActionListener{
    JTextField inputText,showUnicode;
    JButton button;
    MathWindow(){
        inputText=new JTextField(10);
        showUnicode=new JTextField(10);
        button=new JButton("排序");
        button.addActionListener(this);
        inputText.addActionListener(this);
        setLayout(new FlowLayout());
        add(inputText);
        add(button);
        add(showUnicode);
        setBounds(100,100,260,190);
        setVisible(true);
        validate();
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   }
   public void actionPerformed(ActionEvent e){
        String s=inputText.getText();
        char c[] = null;
        char tem;
        StringBuffer str=new StringBuffer();
        for(int i=0;i<s.length();i++)
           c[i]=s.charAt(i);
        for(int i=0;i<s.length()-1;i++){
           for(int j=i+1;j<s.length();j++){
           if(c[i]<c[j])
           {
               tem=c[j];
               c[j]=c[i];
               c[i]=tem;
           }
           str.append(c);
           str.append(",");
           }
        }
        showUnicode.setText(new String(str));
   }
}
题目要求是在一个文本框中输入数,再另一个文本框中输出数的排序的结果,请高手指点
----------------解决方案--------------------------------------------------------
程序代码:
public class Sort {
    public static void main(String[] args) {
        int[] array = {8, 5, -1, 4, -9, 10, 100, 99, 81};
        sort(array);
        for(int i = 0; i < array.length; i++) {
            System.out.printf("%d ", array[i]);
        }
    }
   
    public static void sort(int[] array) {
        int i, j, k;
        for(i = 0; i < array.length - 1; i++) {
            k = i;
            for(j = i + 1; j < array.length; j++) {
                if(array[j] < array[k]) {
                    k = j;
                }
            }
            if(k != i) {
                array[k] ^= array[i];
                array[i] ^= array[k];
                array[k] ^= array[i];
            }
        }
    }
} //Output:
-9 -1 4 5 8 10 81 99 100

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-05-25 13:58:21
qq8801103

来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:412
专家分:340
注 册:2009-10-8
  得分:0 
请把代码加到我的代码中   请高手指点
----------------解决方案--------------------------------------------------------
  相关解决方案