关于排序的棘手问题
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
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽