演算法之插入排序

2021-08-09 10:12:34 字數 842 閱讀 1280

直接插入排序:

package insertsort;

//插入排序之直接插入排序

//直接插入排序基本思想

//在要排序的一組數中,假設n-1個數已經排好,將第n個數插入到已經排好的序列中

//如此反覆迴圈,直至所有的數排好。

public class directinsertsort {

public int insertsort(int data){

//兩層for迴圈

//一組數,先是獲得這組數中的第i個數,放置在tmp變數中,然後用第i個數與i個之前數比較

int i,j;

for(i = 1;i0 && tmp

package insertsort;

//插入排序之希爾排序

//希爾排序的本質仍為插入排序,通過增量的設定提高了效率

//增量的設定設為d1=n/2,是將待排序陣列分為若干個子陣列,再進行直接插入排序

//然後增量設定為d2=d1/2,再進行插入排序,直至增量為1,進行直接插入排序,結束操作

public class shellsort {

public int shellsorttest(int data){

int tmp;//將待插入元素存入一空間內

int i,j=0;

int x = 0;

double d = data.length;

while(true){

//將待排序陣列分為d1個字陣列

d = math.ceil(d/2);

int d1 = (int)d;

//取出子陣列中的元素

for(i=0;i=0&&tmp

排序演算法之插入排序

排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...

排序演算法之插入排序

排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...

排序演算法之插入排序

本節主要分析插入排序演算法的直接插入排序和希爾 shell 排序 又稱縮小增量排序 1.直接插入排序 該排序是最簡單的排序方法,其基本思想是 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至i n為止,依次將r i 插入當前的有序區r 1....