请用java语言编写排序程序。
单词表? 应该是字母表的顺序吧? 以下代码仅供参考
public class a {public static void main(String[] args) {String[] ss = new String[] { "hello", "world", "we", "weak", "hey" };sortStringArray(ss);for (int i = 0, k = ss.length; i 0) {temp = ss[i];ss[i] = ss[m];ss[m] = temp;}}}}}
以学生姓名、学号为例
package server;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Students extends JFrame{
/**
* 信息组建
*/
ArrayList alname = new ArrayList();
ArrayList alno = new ArrayList();
/**
* 面板组件
*/
static int num = 0;
JTextField jtno =new JTextField(31);
JTextField jtname =new JTextField(31);
JButton jbfind = new JButton("查找");
JButton jbedit = new JButton("修改");
JButton jbadd = new JButton("添加");
JButton jbdelete = new JButton("删除");
JButton jbok = new JButton("退出");
Students(){
//"E://Text//user.txt"读取原始信息
try {
BufferedReader br = new BufferedReader(new FileReader("E://Text//user.txt"));
String message = null;
while ((message = br.readLine()) != null) {
String[] arrayLine = message.split("\\s+");
alname.add(arrayLine[0]);
alno.add(arrayLine[1]);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(alname);
System.out.println(alno);
}
public void studentFrame(){
setTitle("学生信息");
setSize(480,150);
setLayout(new GridLayout(3,1));
JPanel p1 = new JPanel();
p1.add(new JLabel("学号:",JLabel.CENTER));
p1.add(jtno);
JPanel p2 = new JPanel();
p2.add(new JLabel("姓名:",JLabel.CENTER));
p2.add(jtname);
JPanel p3 = new JPanel();
p3.add(jbfind);
p3.add(jbedit);
p3.add(jbadd);
p3.add(jbdelete);
p3.add(jbok);
add(p1);
add(p2);
add(p3);
jbedit.setEnabled(false);
jbdelete.setEnabled(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jbfind.addActionListener(new Find());
jbedit.addActionListener(new Edit());
jbadd.addActionListener(new Add());
jbdelete.addActionListener(new Delete());
jbok.addActionListener(new Ok());
}
private class Ok implements ActionListener{
public void actionPerformed(ActionEvent e) {
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E://Text//user.txt")));
bw.write("");
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E://Text//user.txt",true)));
for(int i =0;i<alno.size();i++){
bw.write(alname.get(i)+" "+alno.get(i));
bw.newLine();
bw.flush();
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
dispose();
}
}
private class Add implements ActionListener{
public void actionPerformed(ActionEvent e) {
String no = jtno.getText();
String name = jtname.getText();
num = alno.indexOf(no);
System.out.println(num);
if(num==-1){
alno.add(no);
alname.add(name);
}else{
JOptionPane.showMessageDialog(null,"该用户已存在请重新输入!");
}
System.out.println(alno);
System.out.println(alname);
jtno.setText("");
jtname.setText("");
}
}
private class Find implements ActionListener{
public void actionPerformed(ActionEvent e) {
jbedit.setEnabled(true);
jbdelete.setEnabled(true);
// jbimport.setEnabled(false);
jbfind.setEnabled(false);
String str = jtno.getText();
num = alno.indexOf(str);
jtname.setText(alname.get(num));
}
}
private class Edit implements ActionListener{
public void actionPerformed(ActionEvent e) {
jbfind.setEnabled(true);
jbadd.setEnabled(true);
// jbimport.setEnabled(true);
jbedit.setEnabled(false);
jbdelete.setEnabled(false);
alno.remove(num);
alname.remove(num);
String no = jtno.getText();
String name = jtname.getText();
alno.add(no);
alname.add(name);
System.out.println(alno);
System.out.println(alname);
jtno.setText("");
jtname.setText("");
}
}
private class Delete implements ActionListener{
public void actionPerformed(ActionEvent e) {
String no = jtno.getText();
num = alno.indexOf(no);
alno.remove(num);
alname.remove(num);
System.out.println(alno);
System.out.println(alname);
jtno.setText("");
jtname.setText("");
jbdelete.setEnabled(false);
}
}
public void setSize(int width,int height){
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setBounds((d.width-width)/2,(d.height-height)/2,width,height);
}
public static void main(String[] args) {
new Students().studentFrame();
}
}
参考代码如下,可以按需求自己修改
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);
}
}
}
import java.util.Random;
public class Nova {
private boolean flag = false;
private int randomNum;
private int[] randomArray;
public Nova() {
SortThread st1 = new SortThread();
st1.start();
SortThread st2 = new SortThread();
st2.start();
if(st1.getTimeCost()>st2.getTimeCost()){
System.out.println("先执行完成的是线程:"+st2.getId());
}else{
System.out.println("先执行完成的是线程:"+st1.getId());
}
}
public int generateRandom(){
int a = (int)(Math.random()*10)+10;
System.out.println(a);
return a;
}
public int[] generateArray(int len){
int[] shadow = new int[len];
for(int i = 0;i < len;i++){
shadow[i++] = (int)(Math.random()*100)+8;
}
/*for(int j=0;j<shadow.length;j++){
System.out.print(shadow[j]+" ");
}*/
return shadow;
}
class SortThread extends Thread{
private double timecost;
/*public SortThread(){
Thread t = new Thread();
t.start();
}*/
public double getTimeCost(){
return timecost;
}
@Override
public void run() {
randomNum = generateRandom();
//randomArray = new int[randomNum];
randomArray = generateArray(randomNum);
int[] result;
if(flag){
synchronized (this) {
double d1 = System.currentTimeMillis();
result = bubbleSort(randomArray);
double d2 = System.currentTimeMillis();
timecost = d2-d1;
}
flag = false;
}else{
synchronized (this) {
double d1 = System.currentTimeMillis();
result = pivotSort(0, randomArray.length-1);
double d2 = System.currentTimeMillis();
timecost = d2-d1;
}
flag = true;
}
display(result);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void display(int data[])
{
for(int i=0;i<data.length;i++)
{
System.out.print(data[i]);
System.out.print(" ");
}
System.out.println();
}
private int[] bubbleSort(int[] data){
for(int i=0;i<data.length;i++){
for(int j=0;j<data.length-1-i;j++){
if(data[j]>data[j+1]){ //如果后一个数小于前一个数交换
int tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
return data;
}
private int[] pivotSort(int low,int high){
if(low<high){
int result = partition(randomArray,low,high);
pivotSort(low,result-1);
pivotSort(result+1,high);
}
return randomArray;
}
private int partition(int sortArray[],int low,int hight){
int key = sortArray[low];
while(low<hight)
{
while(low<hight && sortArray[hight]>=key)
hight--;
sortArray[low] = sortArray[hight];
while(low<hight && sortArray[low]<=key)
low++;
sortArray[hight] = sortArray[low];
}
sortArray[low] = key;
return low;
}
public static void main(String[] args) {
Nova nova = new Nova();
}
}
public class SortThread {
public static void main(String[] args) {
Array array = new Array();
quickSort cn = new quickSort(array);
new Thread(cn).start();
bubbleSort sn = new bubbleSort(array);
new Thread(sn).start();
}
}
class Array {
private int[] nums = new int[10];
public int[] getNums() {
return nums;
}
public void setNums(int[] nums) {
this.nums = nums;
}
public Array() {
int[] temp = new int[10];
for (int i = 0; i < nums.length; i++) {
temp[i] = (int)(Math.random() * 89 + 10);
}
this.setNums(temp);
}
public synchronized void quick() {
long startTime = System.currentTimeMillis();
_quickSort(0, this.getNums().length - 1);
long endTime = System.currentTimeMillis();
for (int i = 0; i < this.getNums().length; i++) {
System.out.print(this.getNums()[i]);
if (i < this.getNums().length - 1) {
System.out.print(" < ");
}
}
System.out.println(" 快速排序使用的时间为:" + (endTime - startTime) + "ms");
}
private int partition(int[] nums,int low,int hight) {
int key = nums[low];
while(low < hight){
while(low < hight && nums[hight] >= key)
hight--;
nums[low] = nums[hight];
while(low < hight && nums[low] <= key)
low++;
nums[hight] = nums[low];
}
nums[low] = key;
return low;
}
public void _quickSort(int low,int hight) {
if (low < hight) {
int result = partition(this.getNums(),low,hight);
_quickSort(low,result - 1);
_quickSort(result + 1,hight);
}
}
public synchronized void bubble() {
long startTime = System.currentTimeMillis();
for (int i = 0; i < this.getNums().length - 1; i++) {
for (int j = i + 1; j < this.getNums().length; j++) {
int temp = 0;
if (this.getNums()[i] > this.getNums()[j]) {
temp = this.getNums()[i];
this.getNums()[i] = this.getNums()[j];
this.getNums()[j] = temp;
}
}
}
long endTime = System.currentTimeMillis();
for (int i = 0; i < this.getNums().length; i++) {
System.out.print(this.getNums()[i]);
if (i < this.getNums().length - 1) {
System.out.print(" < ");
}
}
System.out.println(" 冒泡排序使用的时间为:" + (endTime - startTime) + "ms");
}
}
class quickSort implements Runnable {
public Array array;
public quickSort(Array array) {
this.array = array;
}
public void run() {
array.quick();
}
}
class bubbleSort implements Runnable {
public Array array;
public bubbleSort(Array array) {
this.array = array;
}
public void run() {
array.bubble();
}
}
...Java程序的步骤是什么?每一步的结果是什么?在JDK中,Java语言的...
3、运行class文件:在dos中输入所写的源文件名字(不需要写后缀名-即.class 严格区分大小写 编译不需要区分大小写)。如使用开发工具所写:请参照相对应的手册来点击开发工具中的按钮来编译运行。java语言的编译命令就是javac 在dos中输入javac可见到这个命令的详细介绍。其他命令也是一样。至于每一步的...
java编程开发语言编辑脚本应该怎么做?
Java脚本API是一种独立于框架的脚本语言,使用来自于Java代码的脚本引擎。通过java脚本API,可以使用Java语言编写定制\/可扩展的应用程序并将自定义脚本语言选择留给终用户。Java应用程序开发者不需要在开发过程中选择扩展语言。如果你使用JSR-223API来编写应用,那么你的用户可以使用任何JSR-223兼容的脚本语言。
安卓Android软件开发用什么语言?
安卓(Android)软件开发通常使用以下编程语言:1.Java:Java是安卓平台上最常用的编程语言之一。它是Android应用程序的官方开发语言,大多数应用都是用Java编写的。Android应用的核心库和运行时环境也是基于Java构建的。2.Kotlin:Kotlin是一种现代的、功能强大的编程语言,由JetBrains公司开发。Google宣布Kotlin...
java语言如何编写程序?
如下:(1) 一个Java语言开发工具包(Java Devekopment Kit),其中包括Java 编译器和Java运行环境。(2) 一份Java语言API文档,目前版本的Java语言API文档同样可以免费。(3) 一个Java语言集成开发环境,能够在其中编辑Java代码,并且进行编译与调试。推荐使用的集成开发环境是JCreator。建议去找老师让老师 ...
Java到底能做什么事情呢?
可以做Android:Android手机,随便打开一个APP应用,他们就是用的Java语言。从Android刚刚起步,到今天许多的Android应用都是由Java程序员开发的。虽然Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写的。可以编写游戏:很多耳熟能详的游戏都是通过Java语言编写的,并且Java不仅仅是在...
JAVA是什么软件?主要是干什么用的?
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。相关工作用途:1...
java是什么语言?
一、Java语言概述 首先得知道Java是什么,Java是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言,是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。那么为什么要使用这个语言呢,Java语言的特点跨平台性,通过Java语言编...
java后缀的文件
它可以将Java字节码即时编译为本地机器代码,提高程序的执行速度。总之,Java后缀的文件是一种非常重要的文件类型,它包含了Java程序的源代码。程序员使用Java编程语言编写Java源代码文件,并将其编译为Java字节码文件。Java字节码文件可以在Java虚拟机上运行,并且可以通过JIT编译器提高程序的执行速度。
用JAVA语言编写一个程序,要求如下:
import java.util.Random;import java.util.Scanner;public class T {public static void main(String[] args) throws Exception {Scanner in = new Scanner(System.in);int difficulty;\/\/难度int mode;\/\/运算类型int answer;\/\/答案int amount;\/\/挑战题目数量int score = 0;\/\/得分System.out....
java是c语言还是C++编写的?
java是C++编写的。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向...
主父印关节: public class Test1 {public static void main(String[] args) throws Exception {int a[]={0,3,4,6,5,1,2,9,8};System.out.print("排序前:");for (int i= 0; i< a.length; i++) {System.out.print(a[i]);}Arrays.sort(a);System.out.print("\n排序后:");for (int i= 0; i< a.length; i++) {System.out.print(a[i]);}}}
余姚市19522077197: 用java写一个程序: 对命令行输入的一组整数用选择排序法排序 - ?
主父印关节: import java.util.Scanner;public class SelectSort {public static void main(String[] args) { int[] data=new int[5];Scanner sc=new Scanner(System.in);System.out.println("请输入5个数: ");for(int i=0;i<5;i++){int num=sc.nextInt();data[i]=...
余姚市19522077197: java请设计出一个对N个数进行排序的程序 - ?
主父印关节: Scanner in = new Scanner(System.in); System.out.print("输入个数:"); int[] arr = new int[in.nextInt()]; int num=0; for (int i = 0; i < arr.length; i++) { System.out.print("输入第(" + (i + 1) + ")个数:"); arr[i] = in.nextInt(); } for (int i = ...
余姚市19522077197: 用java语言编写一个程序对任意三个整数进行排序并输出结果 - ?
主父印关节: length ;把这里改成大于; a[j]=a[j + 1]; a[j + 1]=temp; i < astatic void BubbleSort(int a []){ int temp=0; i++) { for (int j = 0; j <,就是升序了 temp=a[j]; a.length - i - 1; j++){ if (a[j]>a[j + 1]){ // } } } }就是一个冒泡排序,你可以去百度搜一下就会出来很多了; for (int i = 0
余姚市19522077197: 用java编写任意输入数字,排序 - ?
主父印关节: public String isNumber(String character)修改为public static String isNumber(String character)因为main是静态方法,不能调用非静态方法,jvm加载 顺序不一样,或者产生JJArrangedNumbers的对象 a, 用a来调用a.isNumber()..其它方法一样…
余姚市19522077197: 编写java程序:输入N个数字,对其进行从小到大排序 - ?
主父印关节: 实现思路:就是输入的数字之间有固定的规则,之后读取后,依次进行大小比较,之后直到排序结束,输出结果即可: import java.util.Scanner; public class ArrangedNumbers {Integer arryNum[];int count = 0;/* 统计数字 */boolean judgeIsNum ...
余姚市19522077197: 10个数的排序用JAVA语言怎么写 - ?
主父印关节: class paixu {private int i,j,temp;void sort(int arrayOflnts[]){for(i=0;i<arrayOflnts.length-1;i++){for(j=0;j<arrayOflnts.length-i-1;j++){if(arrayOflnts[j]>arrayOflnts[j+1]){temp=arrayOflnts[j];arrayOflnts[j]=arrayOflnts[j+1];arrayOflnts[j+1]=temp;}}} ...
余姚市19522077197: java语言中编程对十个整数进行从小到大排序 - ?
主父印关节: import java.util.Scanner;//键盘输入,冒泡排序 public class Example9_19 { public static void main(String args[]){ Scanner in=new Scanner(System.in);int n=10;int data[]=new int[n];for(int i=0;i<data.length;i++){ System.out.println("请输入...
余姚市19522077197: 急求Java语言程序设计“编程对10个整数进行排序”的程序 - ?
主父印关节: // 分别用JAVA冒泡算法和选择算法对整型数组进行由小到大排序,并输出 package mym3; public class Mym3 { public int[] SelectSort(int pArray[]) { int temp; for (int i = 0; i < pArray.length - 1; i++) { for (int j = i + 1; j < pArray.length; j++) { if (pArray[i] > ...
余姚市19522077197: java语言写一个简单数组从小到大的排序(0到5就行)要用java语言的 - ?
主父印关节: public class MyClass { public static void main(String[] args) { int arr[] = new int[]{1,5,3,4,2}; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { int t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } } for (int i = 0; i < arr.length...