发现自己对于算法基本没了解,自己独立编程很费脑子,没有思路。。。
/*
时间:2014年12月18日20:08:42
功能:数组练习
要求:
1. 从命令行读入
2. 转换为int类型数组
3. 从小到大排序
*/
public class NumSort {
public static void main(String[] args) {
int a [] = new int [args.length];
for(int i=0; i<args.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
print(a);
selectionSort(a);
print(a);
}
private static void selectionSort(int [] a) { //选择排序法
for(int i=0; i<a.length; i++) {
for(int j=i+1; j<a.length; j++) {
if(a[i] > a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
private static void print(int [] a) {
for(int i=0; i<a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
}
/*
Notice: selectionSort方法不加static会出错:
NumSort.java:17: 错误: 无法从静态上下文中引用非静态 方法 selectionSort(int[])
selectSort(a);
*/
parseInt(String s)方法:强制转换为int类型变量(parseDouble, parseByte, parseBoolean等类似)
选择排序法:两重循环,第一次大循环找到第一个最小数(从小到大排列时);第二次找到余下的里面的最小数;第三、四次……以此类推