「java排序程序」java排序器
今天给各位分享java排序程序的知识,其中也会对java排序器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
JAva排序程序
package frame;import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JFrame;public class DeskTop extends JFrame implements ActionListener {
/**
* 游戏主界面
*/
private static final long serialVersionUID = -146914695375424877L;
private JButton jbn[]= new JButton[10];
private JLabel jl=new JLabel("请输入显示时间(秒):");
private JLabel mark_show=new JLabel("本次得分:");
private JTextField jt= new JTextField();
private int num[]=new int[9];
int num2[]=new int[num.length];
tool tl= new tool();
public int[] getNum() {
return num;
}
public void setNum(int[] num) {
this.num = num;
}
public DeskTop() throws HeadlessException {
super();
for(int i = 0;i10;i++){
jbn[i]=new JButton("");
}
this.setTitle("JAva排序程序");
this.setLayout(null);
this.setSize(800, 180);
this.setLocation(200, 200);
this.setVisible(true);
for(JButton jb:jbn){
this.add(jb);
}
this.add(jl);this.add(jt);this.add(mark_show);
for(int i=10,j=0;i=580;i+=70,j++){
jbn[j].setBounds(i, 10, 60, 20);
}
jbn[9].setBounds(400, 40, 60, 20);mark_show.setBounds(100, 90, 200, 20);
jl.setBounds(60, 40, 150, 20);jt.setBounds(200, 40, 100, 20);
jbn[9].setText("开始");
for(JButton jbt:jbn){
jbt.addActionListener(this);
}
for(int i=0;i9;i++){
num[i]=0;
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jbn[9]){
//产生随即数
for(int i=0;i9;i++){
num2[i]=0;
}
Random rd1 = new Random();
boolean ck=true;
int index=0;
for(int i=0;i9;i++){
ck=true;
while(ck){
index= rd1.nextInt(99);
if(index!=0tl.Iscf(num, index)){
ck=false;
}
}
num[i]=index;
}
for(int i=0;i9;i++){
jbn[i].setText(num[i]+"");
}
if(jt.getText().trim()==null||"".equals(jt.getText().trim())){
JOptionPane.showMessageDialog(this,"间隔不能为空!");
}else{
String str=jt.getText().trim();
boolean ckStr=false;
try{
Integer.parseInt(str);
}
catch(Exception ex){
ckStr=true;
}
if(ckStr){
JOptionPane.showMessageDialog(this,"请输入一个整数!");
}else{
Timelim timer=new Timelim(this,Integer.parseInt(jt.getText()));
if(Timelim.ck){
if(JOptionPane.showConfirmDialog(this, "本次测试尚未完成,要停止本次操作吗?", "提示",JOptionPane.YES_NO_OPTION)==0){
Timelim.ck=false;
}
}
else{
this.mark_show.setText("开始.....");
timer.start();
}
}
}
return;
}
if(e.getSource()==jbn[0]){
jbn[0].setText(num[0]+"");
num2=tl.add(num2, num[0]);
//如果测试完则开始评分
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[1]){
jbn[1].setText(num[1]+"");
num2=tl.add(num2, num[1]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[2]){
jbn[2].setText(num[2]+"");
num2=tl.add(num2, num[2]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[3]){
jbn[3].setText(num[3]+"");
num2=tl.add(num2, num[3]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[4]){
jbn[4].setText(num[4]+"");
num2=tl.add(num2, num[4]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[5]){
jbn[5].setText(num[5]+"");
num2=tl.add(num2, num[5]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[6]){
jbn[6].setText(num[6]+"");
num2=tl.add(num2, num[6]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[7]){
jbn[7].setText(num[7]+"");
num2=tl.add(num2, num[7]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
if(e.getSource()==jbn[8]){
jbn[8].setText(num[8]+"");
num2=tl.add(num2, num[8]);
if(tl.IsOver(jbn)){
this.mark_show.setText("本次得分:"+new Mark(num,num2).getMark()+"分,最高分100分");
}
}
}
public static void main(String[] args) {
new DeskTop();
}
public JButton[] getJbn() {
return jbn;
}
public void setJbn(JButton[] jbn) {
this.jbn = jbn;
}
public JLabel getMark_show() {
return mark_show;
}
public void setMark_show(JLabel mark_show) {
this.mark_show = mark_show;
}
}
package frame;/**
* 评分
*
*/
public class Mark {
private int num1[];
private int num2[];
public Mark(int num1[],int num2[]) {
this.num1=num1;
this.num2=num2;
}
//获取评分
public String getMark(){
num1=this.Sort(num1);
for(int i=0;i9;i++){
System.out.println("------1------"+num1[i]);
}
for(int i=0;i9;i++){
System.out.println("------2------"+num2[i]);
}
double mark=0;
for(int i=0;inum1.length;i++){
if(num2[i]==num1[i]){
mark+=1;
}
}
mark=(mark/num1.length)*100;
return Double.toString(mark).substring(0, 2);
}
//排序方法
public int[] Sort(int num[]){
int t=0;
for(int j=num.length-1;j=0;j--){
for(int i=0;ij;i++){
if(num[j]num[i]){
t=num[j];
num[j]=num[i];
num[i]=t;
}
}
}
return num;
}
}
package frame;import javax.swing.JButton;public class Timelim extends Thread {
//计时线程
private DeskTop dt;
private int second;
public static boolean ck=false;
public Timelim(DeskTop dt,int second) {
this.dt=dt;
this.second=second; } public void run() {
ck=true;
int count=0;
ck=true;
while(ck){
count++;
if(count==this.second){
ck=false;
JButton jbn[]= dt.getJbn();
for(int i=0;i9;i++){
jbn[i].setText("");
}
dt.getMark_show().setText("测试开始...");
ck=false;
}else{
try{
Thread.sleep(1000);
dt.getMark_show().setText("剩余时间:"+(second-count)+"秒...");
}catch(Exception ex){}
}
}
}}
package frame;import javax.swing.JButton;public class tool {
//工具类
public int[] add(int num[],int value){
for(int i=0;inum.length;i++){
if(num[i]==0){
num[i]=value;
break;
}
}
return num;
}
public boolean IsOver(JButton jbn[]){
for(JButton jbt:jbn){
if("".equals(jbt.getText().trim())){
return false;
}
}
return true;
}
public boolean Iscf(int num[],int value){
for(int i:num){
if(i==value){
return false;
}
}
return true;
}
}
请用java语言编写排序程序。
参考代码如下,可以按需求自己修改
import java.util.Date;
public class SortThread {
public static void main(String[] args) {
//产生一个随机数组
int[] ary = getArray();
//启动冒泡排序线程
new Thread(new MaoPao(ary)).start();
//启动快速排序线程
new Thread(new KuaiSu(ary)).start();
}
private static int[] getArray() {
//建议数字n不要超过1百万,十万左右就好了
int n = (int) (Math.random()*1000000)+11;
int[] ary= new int[n];
System.out.println("n的值是" + n);
for (int i = 0; i ary.length; i++) {
ary[i] = (int) (Math.random()*100000);
}
return ary;
}
}
//冒泡排序
class MaoPao implements Runnable {
int[] ary;
public MaoPao(int[] ary) {
this.ary = ary;
}
@Override
public void run() {
long st = System.currentTimeMillis();
System.out.println(new Date() + "冒泡排序线程:开始执行排序");
for (int i = 0; i ary.length - 1; i++) {
for (int j = 0; j ary.length - i - 1; j++) {
if (ary[j] ary[j + 1]) {
int temp = ary[j];
ary[j] = ary[j + 1];
ary[j + 1] = temp;
}
}
}
long et = System.currentTimeMillis();
System.out.println(new Date() + "冒泡排序线程完成排序,耗费时间" + (et - st) + "毫秒");
for (int i = 0; i ary.length; i++) {
System.out.println(ary[i]+" ");
}
}
}
//快速排序
class KuaiSu implements Runnable {
int[] ary;
public KuaiSu(int[] ary) {
this.ary = ary;
}
@Override
public void run() {
long st = System.currentTimeMillis();
System.out.println(new Date() + "快速排序线程:开始执行排序");
quickSort(ary, 1, ary.length);
long et = System.currentTimeMillis();
System.out.println(new Date() + "快速排序线程排序完成,耗费时间" + (et - st) + "毫秒");
for (int i = 0; i ary.length; i++) {
System.out.println(ary[i]+" ");
}
}
public static int Partition(int a[], int p, int r) {
int x = a[r - 1];
int i = p - 1;
int temp;
for (int j = p; j = r - 1; j++) {
if (a[j - 1] = x) {
i++;
temp = a[j - 1];
a[j - 1] = a[i - 1];
a[i - 1] = temp;
}
}
temp = a[r - 1];
a[r - 1] = a[i + 1 - 1];
a[i + 1 - 1] = temp;
return i + 1;
}
public static void quickSort(int a[], int p, int r) {
if (p r) {
int q = Partition(a, p, r);
quickSort(a, p, q - 1);
quickSort(a, q + 1, r);
}
}
}
设计一个给班级学生成绩排序的java程序,具体要求如下
按照题目要求编写的Java程序如下(注意 以下程序全部放在Main.java文件中)
class student{
String name;
int score;
public student(String name,int score){
this.name=name;
this.score=score;
}
String studentInfo(){
return "name="+this.name+",score="+this.score;
}
}
public class Main{
public static void main(String[] args){
student sty[]=new student[5];
sty[0]=new student("zhangsan",67);
sty[1]=new student("lisi",75);
sty[2]=new student("wangwu",57);
sty[3]=new student("zhaoliu",88);
sty[4]=new student("ruanqi",93);
student stu[]=new student[5];
for(int i=0;isty.length;i++){
stu[i]=sty[i];
}
for(int i=0;istu.length-1;i++){
for(int j=0;jstu.length-i-1;j++){
if(stu[j].scorestu[j+1].score){
student temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
for(int i=0;istu.length;i++){
System.out.println(stu[i].studentInfo());
}
}
}
java排序程序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java排序器、java排序程序的信息别忘了在本站进行查找喔。
发布于:2022-12-02,除非注明,否则均为
原创文章,转载请注明出处。