插入排序之直接插入排序

2021-10-02 04:21:31 字數 699 閱讀 6506

直接插入排序思想:將乙個記錄插入到已經排好序的記錄中,從而得到乙個有序的,記錄數增一的有序表。

我理解的排序思想:從小到大排列

①從陣列第二個數開始,先比較第二個數與第乙個數,若第乙個數比第二個數大,則交換位置(因為會覆蓋,所以提前記錄下第二個數,表示為臨時數)。//此處可看出,逐步將一組數最前面的資料處理成了一組有序的數列

②第三個數(此處標記為記錄的 臨時數)與第二個數比較,第乙個數與第三個數(臨時數)比較,交換位置。

③…(規律如此)直到比較完。

話不多說,直接上**,

#include

#include

#include

/* 直接插入排序 */

void insert_sort(int *ttr,int num)

ttr[j+1]=temp;//一輪排序後,臨時數歸位}}

int main()

;int integer,i;

integer = sizeof(str1) / sizeof(int);

insert_sort(str1,integer);

for(i=0;i注:

時間複雜度

最好情況:o(n)

平均情況:o(n2) //n的平方

最壞情況:o(n2) //n的平方

空間複雜度:o(1)

穩定性:比較穩定

插入排序之直接插入排序

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

插入排序之直接插入排序

依次將每個記錄 無序表 插入到乙個已排好序的有序表中,得到乙個新的,記錄增加1的有序表 向撲克牌中插入新牌,圖書館整理圖書 有n個數,將第乙個數看做乙個有序表,從第二個開始從後向前比較,第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把第三個數按大小...

插入排序之直接插入排序

packagesort.algorithm publicclassdirectinsertsort inttemp,j for int i 1 i data.length i data j 1 temp 輸出排序好的資料 for int k 0 k data.length k 直接插入排序,一般對於...