class Example {
//選擇排序
public static void sort(Comparable[] a)
{
//將a[]按升序排列
int N=a.length;
for(int i=0;i<N-1;i++)
{
//將a[i]與a[i+1..n]中最小元素交換
int min=i;
for(int j=i+1;j<N;j++)
if(less(a[j],a[min]))
{
min=j;
}
if(i!=min)
exch(a,i,min);
}
}
public static boolean less(Comparable v,Comparable w)
{
return v.compareTo(w)<0;
}
public 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)
{
//在單行中打印數組
for(int i=0;i<a.length;i++)
{
StdOut.print(a[i]+" ");
}
StdOut.println();
}
public static boolean isSorted(Comparable[] a)
{
//測試數組元素是否有序
for(int i=1;i<a.length;i++)
{
if(less(a[i],a[i-1]))
return false;
}
return true;
}
public static void main(String[] args) {
// 從標準輸入讀取字符串,將他們排序並輸出
@SuppressWarnings("deprecation")
String[] a=In.readStrings("D:\\BaiduYunDownload\\我的代碼\\圖表\\bin\\algs4-data\\words3.txt");
sort(a);
assert isSorted(a);
show(a);
}
}
java實現選擇排序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
1、通過程序設計幾何圖形(Shape)、矩形(Rectangle)、圓形(Circle)、正方形(Square)幾種類型,能夠利用接口和多態性計算幾何圖形的面積和周長並顯示。 2、按以下要求編寫程序
shang1shang
2018-08-25 05:50:52
題目:2006年培養學員8萬人,每年增長25%,請問按照次增長速度,到哪一年培養學員人數將達到20萬人?(分別用zzx do while 和 for語句作答)
shang1shang
2018-08-25 05:50:52
定義一個圖形類及其子類(三角形類和矩形類),分別計算其面積和周長
shang1shang
2018-08-25 05:50:52
java
shang1shang
2018-08-25 05:50:52
用星號*輸出金字塔圖案
小酒窝19901224
2018-08-25 01:48:40
Java開發可視化界面
落叶居士-朱家意
2018-08-24 06:47:43
Java常用類及集合框架小實驗
HP-EPM测试2-张栋云
2018-08-24 00:46:11
java如何監控一個方法的運行時間 [問題點數
yunhaiLIMING
2018-08-23 23:47:03
可以下載軟件,可以下載未完成的軟件
yunhaiLIMING
2018-08-23 23:47:00
Java模擬電話本操作
yunhaiLIMING
2018-08-23 23:46:59
文本編輯器EditPlus
Galaxy9572
2018-08-23 21:54:36
堆排序的java實現
Gatherfly
2018-08-21 23:02:30
數據庫讀寫分離方法淺析
晓风残月xj
2018-08-21 22:55:31
Java裝箱==的池化坑
晓风残月xj
2018-08-21 22:55:29
Java動態代理原理及實現
晓风残月xj
2018-08-21 22:55:19
24小時熱門文章