每天乙個演算法(2) 插入排序(java)

2021-08-21 02:18:29 字數 1689 閱讀 6073

需要被排序的陣列: [10, 3, 2, 1, 0, 5, 4, 7, 8, 9]

第1次: [3, 10, 2, 1, 0, 5, 4, 7, 8, 9] 將3插入有序陣列之中

第2次: [2, 3, 10, 1, 0, 5, 4, 7, 8, 9] 將2插入有序陣列【3、10】之中

第3次: [1, 2, 3, 10, 0, 5, 4, 7, 8, 9] 將1插入有序陣列【2、3、10】之中

第4次: [0, 1, 2, 3, 10, 5, 4, 7, 8, 9] 將0插入有序陣列【1、2、3、10】之中

第5次: [0, 1, 2, 3, 5, 10, 4, 7, 8, 9] 將5插入有序陣列【0、1、2、3、10】之中

第6次: [0, 1, 2, 3, 4, 5, 10, 7, 8, 9] 將4插入有序陣列【0、1、2、3、5、10】之中

第7次: [0, 1, 2, 3, 4, 5, 7, 10, 8, 9] 將7插入有序陣列【0、1、2、3、4、5、10】之中

第8次: [0, 1, 2, 3, 4, 5, 7, 8, 10, 9] 將8插入有序陣列【0、1、2、3、4、5、7、10】之中

第9次: [0, 1, 2, 3, 4, 5, 7, 8, 9, 10] 將9插入有序陣列【0、1、2、3、4、5、7、9、10】之中

**

public

static

void

insert_sort(int arr)

arr[j] = temp; // 插入比這個數最後乙個大的後面

system.out.println("第" + i + "次: " + arrays.tostring(arr));}}

public

static

void

main(string args);

system.out.println("原陣列:");

system.out.println(arrays.tostring(arr));

insertsort.insert_sort(arr);

system.out.println("現陣列:");

system.out.println(arrays.tostring(arr));

}

時間複雜度分析

把n個元素的序列 公升序 排列,那麼採用插入排序存在最好情況和最壞情況。最好情況就是,序列已經是公升序排列了,在這種情況下,需要進行的比較操作需(n-1)次即可。最壞情況就是,序列是降序排列,那麼此時需要進行的比較共有n(n-1)/2次。插入排序的賦值操作是比較操作的次數加上 (n-1)次。平均來說插入排序演算法的時間複雜度為o(n^2)。因而,插入排序不適合對於資料量比較大的排序應用。如果需要排序的資料量很小,那麼插入排序還是乙個不錯的選擇。

每天一演算法 (插入排序)

一 原理 插入排序就是把當前待排序的元素插入到乙個已經排好序的列表裡面。對於給定的一組記錄,初始時假定第乙個記錄自成乙個有序序列,其餘記錄為無序序列。接著從第二個記錄開始,按照記錄的大小依次將當前處理的記錄插入到其之前的有序序列中,直到最後乙個記錄插到有序序列中為止。二 思路 1.在要排序的一組數中...

Java演算法 2 插入排序

1.定義 1 插入排序類似於咱們日常打撲克的時候,通常我們給牌排序時,總是將一張牌插入到其他已經有序的排中的適當位置。2 由 1 可知,插入排序是通過遍歷陣列,並將當前元素與前面已經排好序的元素一一比較,獲得最佳位置 3 為了給要插入的元素騰出空間,需要將其餘所有元素在插入之前都向後移動一位。4 與...

每天乙個小程式(10) 直接插入排序

插入排序的基本思想 有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法 插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複...