這一段程序中String[] a=In.readStrings();應(yīng)該如何從控制臺(tái)輸入,如何輸出呢?(原題是算法第四版中的內(nèi)容)import?edu.princeton.cs.algs4.In;
//import?edu.princeton.cs.algs4.In;
//import?edu.princeton.cs.algs4.StdOut;
//選擇排序
public?class?Selection?{
public?static?void?sort(Comparable[]?a){
//將a[]升序排列
int?N=a.length;
for(int?i=0;i<a.length;i++){
//將a[i]與a[i+1..N]中的最小元素進(jìn)行交換
int?min=i;//最小元素索引
for(int?j=i+1;i<N;j++)
if(less?(a[j],a[min]))?min=j;
exch(a,i,min);
}
}
private?static?boolean?less(Comparable?v,Comparable?w){
return?v.compareTo(w)<0;//v<w
}
private?static?void?exch(Comparable?[]a,int?i,int?j){
Comparable?t=a[i];
a[i]=a[j];
a[j]=t;
}
private?static?void?show(Comparable[]a){
//單行中打印數(shù)組
for(int?i=0;i<a.length;i++)
System.out.print(a[i]+"?");
System.out.println();
}
public?static?boolean?isSorted(Comparable?[]a){
//測試數(shù)組是否有序
for(int?i=0;i<a.length;i++)
if(less(a[i],a[i-1]))?return?false;
return?true;
}
public?static?void?main(String[]?args)?{
String[]?a=In.readStrings();
sort(a);
assert?isSorted(a);
show(a);
}
}附上相關(guān)類的內(nèi)容public?final?class?In?{
????
????/////?begin:?section?(1?of?2)?of?code?duplicated?from?In?to?StdIn.
????
????//?assume?Unicode?UTF-8?encoding
????private?static?final?String?CHARSET_NAME?=?"UTF-8";
????//?assume?language?=?English,?country?=?US?for?consistency?with?System.out.
????private?static?final?Locale?LOCALE?=?Locale.US;
????//?the?default?token?separator;?we?maintain?the?invariant?that?this?value?
????//?is?held?by?the?scanner's?delimiter?between?calls
????private?static?final?Pattern?WHITESPACE_PATTERN
????????=?Pattern.compile("\\p{javaWhitespace}+");
????//?makes?whitespace?characters?significant?
????private?static?final?Pattern?EMPTY_PATTERN
????????=?Pattern.compile("");
????//?used?to?read?the?entire?input.?source:
????//?http://weblogs.java.net/blog/pat/archive/2004/10/stupid_scanner_1.html
????private?static?final?Pattern?EVERYTHING_PATTERN
????????=?Pattern.compile("\\A");
????////?end:?section?(1?of?2)?of?code?duplicated?from?In?to?StdIn.
????private?Scanner?scanner;
???/**
?????*?Initializes?an?input?stream?from?standard?input.
?????*/
????public?In()?{
????????scanner?=?new?Scanner(new?BufferedInputStream(System.in),?CHARSET_NAME);
????????scanner.useLocale(LOCALE);
????}
????
????public?static?String[]?readStrings()?{
????????return?new?In().readAllStrings();
????}
}
選擇排序算法,這一段程序中String[] a=In.readStrings();如何輸入輸出(原題是算法第四版中的內(nèi)容)
胡離
2017-03-29 12:38:01