java升序排序
我有一断程序,但是是刚刚学,还不知道是什么意思,还请高手行行注释,谢谢!~~publicclassSortNumString{publicstaticString[]so...
我有一断程序,但是是刚刚学,还不知道是什么意思,还请高手行行注释,谢谢!~~ public class SortNumString { public static String[] sortNumStr(String numStr){ if(numStr==null||numStr.trim().equals("")) return null; StringTokenizer mToken = new StringTokenizer(numStr); String[] result = new String[mToken.countTokens()]; int i = 0; while(mToken.hasMoreTokens()){ result[i] = mToken.nextToken(); i++; } return result; } public static void main(String[] args){ String[] s = sortNumStr("99 345 8 888 55 0 -9999 30"); int[] ii = new int[s.length]; for(int i = 0;i<ii.length;i++ ){ ii[i] = Integer.parseInt(s[i]); } Arrays.sort(ii);//对指定的数进行排序 //ASC for(int i = 0; i < ii.length;i++){ if (i > 0) { System.out.print(" "); } System.out.print(ii[i]); } /* //DESC for(int i = s.length -1;i>=0;i--){ if (i < s.length-1) { System.out.print(" "); } System.out.print(ii[i]); }*/ } }
展开
4个回答
展开全部
public class SortNumString {//定义SortNumString方法 public static String[] sortNumStr(String numStr){// 定义一个String[](数组)为返回值的类并且带参数(String numStr) if(numStr==null||numStr.trim().equals(""))//if判断如果numStr为空值 return null; //就返回(return)空(null) StringTokenizer mToken = new StringTokenizer(numStr);//定义变量 String[] result = new String[mToken.countTokens()];//实例化变量把它赋给一个数组 int i = 0;//定义i while(mToken.hasMoreTokens()){ //进行while循环 result[i] = mToken.nextToken();//从i即0开始从数组取值 i++;//每取出一个值就自增+1取下个值 } return result;//返回这组值 } public static void main(String[] args){//主方法 String[] s = sortNumStr("99 345 8 888 55 0 -9999 30");//为这个数组赋值 int[] ii = new int[s.length];//定义数组ii规定长度为String[] result数组的个数 for(int i = 0;i<ii.length;i++ ){//进行for循环 定义i,并且i小于int[] ii数组的长度,每循环一次自增一次i++ ii[i] = Integer.parseInt(s[i]); //为int[]赋值并强转为Integer类型 } Arrays.sort(ii);//对指定的数进行排序 //ASC for(int i = 0; i < ii.length;i++){//循环输出int[] ii数组的值 if (i > 0) {//如果i>0 System.out.print(" ");//则输出“ ” } System.out.print(ii[i]);//否则输出int[] ii数组的值 } /* //DESC for(int i = s.length -1;i>=0;i--){ if (i < s.length-1) { System.out.print(" "); } System.out.print(ii[i]); }*/ } }
展开全部
其实排序JAVA已经给我们做好了, 你只是需要自己去调用|: 声明一个import java.util.Collections;再实现implements Comparator 通过Collections调用new 实现implements Comparator的类就行了 下面是代码: package 别人的程序的分析设计; /** * @author greatwqs * */ import java.util.Collections; import java.util.*; public class myQuiz{ public static void main(String[] args) { Employee e1 = new Employee("Cay",4000); Employee e2 = new Employee("Bush",6000); Manager m1 = new Manager ("Alice",5000); //m1.setBonus(100000); List<Employee> list_1=new ArrayList<Employee>(); list_1.add(e1); list_1.add(e2); list_1.add(m1); System.out.println("以下按薪水排序后输出[从高到低]"); Collections.sort(list_1,new Qing()); for(Employee e:list_1) System.out.println(e); List<Employee> list_2 = new ArrayList<Employee>(); list_2.add(e1); list_2.add(e2); list_2.add(m1); System.out.println("以下按照姓名字典顺序输出:"); Collections.sort(list_2 , new Song()); for(Employee em :list_2){ System.out.println(em); } } } class Qing implements Comparator{ public int compare(Object obj0, Object obj1){ Employee c0 = (Employee)obj0; Employee c1 = (Employee)obj1; if(c0.getSalary() >= c1.getSalary()) return -1; else return 1; } } 下面还有代码..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法/步骤
/** 选择降序排序 **/
public static int[] dascSort(int[] param) {
int in, out;
int max;
int temp;
for (out = 0; out < param.length; out++) {
// 默认最大数的位置
max = out;
for (in = out + 1; in < param.length; in++) {
if (param[max] < param[in]) {
// 获取最大数的位置
max = in;
}
}
// 当默认位置的最大数并不是实际的最大数时,和实际的最大数交换位置
if (out != max) {
temp = param[out];
param[out] = param[max];
param[max] = temp;
}
}
return param;
}
/** 选择升序排序 **/
public static int[] ascSort(int[] param) {
int in, out;
int max;
int temp;
for (out = param.length - 1; out > 0; out--) {
// 默认最大数的位置
max = out;
for (in = out - 1; in > 0; in--) {
if (param[max] < param[in]) {
max = in;
}
}
// 当默认位置的最大数并不是实际的最大数时,和实际的最大数交换位置
if (out != max) {
temp = param[out];
param[out] = param[max];
param[max] = temp;
}
}
return param;
}
执行升序和降序方法:
public static void main(String[] args) {
int[] param = { 1, 6, 7, 5 };
param = ascSort(param);
System.out.print("升序结果为:");
for (int i = 0; i < param.length; i++) {
System.out.print(param[i]);
}
System.out.println("");
param = dascSort(param);
System.out.print("降序结果为:");
for (int i = 0; i < param.length; i++) {
System.out.print(param[i]);
}
}
4
运行结果如下:
END
注意事项
选择排序的效率为O(N*N),比较次数最多为N(N-1)/2,交换次数最多为N-1<N,其中N代表需要比较的数的个数;
选择排序不稳定
/** 选择降序排序 **/
public static int[] dascSort(int[] param) {
int in, out;
int max;
int temp;
for (out = 0; out < param.length; out++) {
// 默认最大数的位置
max = out;
for (in = out + 1; in < param.length; in++) {
if (param[max] < param[in]) {
// 获取最大数的位置
max = in;
}
}
// 当默认位置的最大数并不是实际的最大数时,和实际的最大数交换位置
if (out != max) {
temp = param[out];
param[out] = param[max];
param[max] = temp;
}
}
return param;
}
/** 选择升序排序 **/
public static int[] ascSort(int[] param) {
int in, out;
int max;
int temp;
for (out = param.length - 1; out > 0; out--) {
// 默认最大数的位置
max = out;
for (in = out - 1; in > 0; in--) {
if (param[max] < param[in]) {
max = in;
}
}
// 当默认位置的最大数并不是实际的最大数时,和实际的最大数交换位置
if (out != max) {
temp = param[out];
param[out] = param[max];
param[max] = temp;
}
}
return param;
}
执行升序和降序方法:
public static void main(String[] args) {
int[] param = { 1, 6, 7, 5 };
param = ascSort(param);
System.out.print("升序结果为:");
for (int i = 0; i < param.length; i++) {
System.out.print(param[i]);
}
System.out.println("");
param = dascSort(param);
System.out.print("降序结果为:");
for (int i = 0; i < param.length; i++) {
System.out.print(param[i]);
}
}
4
运行结果如下:
END
注意事项
选择排序的效率为O(N*N),比较次数最多为N(N-1)/2,交换次数最多为N-1<N,其中N代表需要比较的数的个数;
选择排序不稳定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现思路:实际上就是每次取出来两个值,之后进行比较,进行换位置,直到比较结束。
**********************************/
import java.io.*;
import java.lang.*;
public class ascend{
public static void main(String[] args){
int i,j,myArray[],t;
myArray=new int[4];
System.out.println("please enter number four");
myArray[0]=IO.getInt();
myArray[1]=IO.getInt();
myArray[2]=IO.getInt();
myArray[3]=IO.getInt();
for(i=0;i<myArray.length;i++)
{
for(j=i+1;j<myArray.length;j++)
{
if(myArray[i]<myArray[j])
{
t=myArray[i];
myArray[i]=myArray[j];
myArray[j]=t;
}
}
}
for(i=0;i<myArray.length;i++)
{
System.out.print(myArray[i]+",");
}
System.out.println();
}
}
**********************************/
import java.io.*;
import java.lang.*;
public class ascend{
public static void main(String[] args){
int i,j,myArray[],t;
myArray=new int[4];
System.out.println("please enter number four");
myArray[0]=IO.getInt();
myArray[1]=IO.getInt();
myArray[2]=IO.getInt();
myArray[3]=IO.getInt();
for(i=0;i<myArray.length;i++)
{
for(j=i+1;j<myArray.length;j++)
{
if(myArray[i]<myArray[j])
{
t=myArray[i];
myArray[i]=myArray[j];
myArray[j]=t;
}
}
}
for(i=0;i<myArray.length;i++)
{
System.out.print(myArray[i]+",");
}
System.out.println();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询