基本思想:在要排序的一組數中,選出最小的乙個數與第乙個位置的數交換;然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。
**實現
public
class
selectsort ;
selectsort(a);
for (int i=0 ;i" ");}}
public
static
void
selectsort(int num)
}//將最小的元素與第i個交換
temp=num[k];
num[k]=num[i];
num[i]=temp;}}
}
public
class
quicksort ;
quicksort(a,0,a.length-1);
for (int i=0 ;i" ");}}
public
static
void
quicksort(int num,int left,int right)
}
基本思想:每步將乙個待排序的記錄,按其順序碼大小插入到前面已經排序的字序列的合適位置(從後向前找到合適位置後),直到全部插入排序完為止。
**時間複雜度:**o(n^2).
public
class
insertsort ;
insertsort(a);
for (int i=0 ;i" ");}}
public
static
void
insertsort(int num)
num[j]=temp;}}
}
基本思想:先將整個待排序的記錄序列分割成為若干子串行分別進行直接插入排序,待整個序列中的記錄「基本有序」時,再對全體記錄進行依次直接插入排序。
**時間複雜度:**o(n^2).
public
class
shellsort ;
shellsort(a);
for (int i=0 ;i" ");}}
public
static
void
shellsort(int data)
else
} data[j] = temp;
} }}
}
基本思想:氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
參考文獻:
八種基本排序演算法 java實現
將陣列公升序排列 思路 將乙個記錄插入到已排序好的有序表中,從而得到乙個新,記錄數增1的有序表。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。2.直接插入排序 public static void ...
八種常見排序演算法java實現
目錄 1.直接插入排序 2.希爾排序 3.簡單選擇排序 4.堆排序 5.氣泡排序 6.快速排序 7.歸併排序 8.基數排序 經常碰到這樣一類排序問題 把新的資料插入到已經排好的資料列中。將第乙個數和第二個數排序,然後構成乙個有序序列 將第三個數插入進去,構成乙個新的有序序列。對第四個數 第五個數 直...
Java常用八種排序演算法
1.直接插入排序 穩定 原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。public class insertsort public static void in...