「java排序程序」java排序器

博主:adminadmin 2022-12-02 01:58:05 69

今天给各位分享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排序程序的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-02,除非注明,否则均为首码项目网原创文章,转载请注明出处。