選擇排序和插入排序
-
public class Sort{
-
public static void main(String[] args){
-
Integer[] data={3,2,9,8,7,10};
-
BaseSort s=new Insertion();
-
-
s.sort(data);
-
-
System.out.println(s.isSorted(data));
- }
-
}
-
-
//插入排序
-
class Insertion extends BaseSort{
-
-
@Override
-
void sort(Comparable[] data) {
-
int length=data.length;
-
for(int i=1;i<length;i++){
-
this.show(data);
-
for(int j=i;j>0 && less(data[j],data[j-1]);j--)
-
{
-
exch(data,j,j-1);
-
}
-
}
-
}
-
}
-
-
//選擇排序
-
class Selection extends BaseSort{
-
@Override
-
void sort(Comparable[] data) {
-
int length=data.length;
-
for(int i=0;i<length;i++){
-
-
this.show(data);
-
int min=i;
-
for(int j=i+1;j<length;j++)
-
{
-
if(less(data[j],data[min])) {
-
min = j;
-
}
-
}
-
exch(data,i,min);
-
}
-
}
-
}
-
-
-
abstract class BaseSort {
-
abstract void sort(Comparable[] data);
-
//比較
-
public boolean less(Comparable v,Comparable w){
-
return v.compareTo(w)<0;
-
}
-
-
//交換
-
public void exch(Comparable[] data,int i,int j){
-
Comparable t=data[i];
-
data[i]=data[j];
-
data[j]=t;
-
}
-
-
//列印
-
public void show(Comparable[] data){
-
for(int i=0;i<data.length;i++){
-
System.out.print(data[i]+" ");
-
}
-
System.out.println("");
-
}
-
-
//驗證
-
public boolean isSorted(Comparable[] data){
-
for(int i=1;i< data.length;i++){
-
if(less(data[i],data[i-1]) )
-
return false;
-
}
-
return true;
-
}
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2124415/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 桶排序 選擇,插入排序排序
- 選擇排序和插入排序(C++實現)排序C++
- 圖解選擇排序與插入排序圖解排序
- php實現 氣泡排序,插入排序,選擇排序PHP排序
- 排序演算法(氣泡排序,選擇排序,插入排序,希爾排序)排序演算法
- PHP 常見4種排序 氣泡排序、選擇排序、插入排序、快速排序PHP排序
- 選擇排序和快速排序排序
- 重學資料結構和演算法(四)之氣泡排序、插入排序、選擇排序資料結構演算法排序
- 選擇排序和氣泡排序排序
- 反射,hashlib模組,正則匹配,冒泡,選擇,插入排序反射排序
- 【小小前端】前端排序演算法第一期(氣泡排序、選擇排序、插入排序)前端排序演算法
- 氣泡排序和選擇排序詳解排序
- 氣泡排序和選擇排序流程圖排序流程圖
- 排序演算法 - 氣泡排序和選擇排序排序演算法
- 選擇排序排序
- 插入排序排序排序
- 三種插入排序 直接插入排序,折半插入排序,希爾排序排序
- go 實現氣泡排序和插入排序Go排序
- 排序演算法 - 快速插入排序和希爾排序排序演算法
- 選擇排序法排序
- 01選擇排序排序
- Java 選擇排序Java排序
- js選擇排序JS排序
- 插入排序排序
- 演算法學習之選擇排序和堆排序:演算法排序
- Python八大演算法的實現,插入排序、希爾排序、氣泡排序、快速排序、直接選擇排序、堆排序、歸併排序、基數排序。Python演算法排序
- 排序法:選擇、冒泡、插入和快排排序
- 用JS實現氣泡排序和插入排序JS排序
- 氣泡排序與選擇排序排序
- 排序演算法:選擇排序排序演算法
- 排序演算法__選擇排序排序演算法
- 【JS面試向】選擇排序、桶排序、氣泡排序和快速排序簡介JS面試排序
- 簡單選擇排序排序
- 陣列選擇排序陣列排序
- C# 選擇排序C#排序
- 03 插入排序排序
- python插入排序Python排序
- 經典排序之選擇排序(Java)排序Java
- 排序——選擇排序小練習(二)排序