直接插入排序
空間複雜度o(1)
時間複雜度最好情況是o(n),最壞情況是o(n²),平均情況是o(n²)
是穩定的內排序演算法
從後往前比較,把後面的元素作為哨兵
#includeusing namespace std;
#includevoid insertionsort(vector&q)
else
}q[j+1] = t;
}}void directinsertionsort(int a,int n)
else
}a[j+1] = t;
}}void insertionsort2(int a,int n) //baike's solution
a[j+1] = temp;}}
}void insertionsort_lts(vector&q)
else
}q[j+1] = t;
}}void directinsertionsort_lts(int a,int n)
else
}a[j+1] = t;
}}void insertionsort2_lts(int a,int n)
a[j+1] = temp;}}
}int main()
; int n = sizeof(arr);
//int arr = ;
//int n = sizeof(arr) / sizeof(arr[0]);
vectora;
for(int i = 0 ; i < n ; i++)
insertionsort(a);
for(auto i : a)
cout
for(int i = 0 ; i < n ; i++)
cout
int len = sizeof(b) / sizeof(b[0]);
cout
for(int i = 0 ; i < len ; i++)
cout
for(auto i : a)
cout
for(int i = 0 ; i < n ; i++)
cout
for(int i = 0 ; i < len ; i++)
cout
return 0;
}
八大排序 插入排序 直接插入排序
基本思想 將乙個記錄插入到已排序好的有序表中,從而得到乙個新,記錄數增1的有序表。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。直接插入排序示例 如果碰見乙個和插入元素相等的,那麼插入元素把想插入的...
八大排序 直接插入排序
直接插入排序 straight insertion sort 的基本操作是將乙個元素插入到序列已經有序的那一部分中去,從而使序列中有序的部分逐漸擴大,直到整個序列有序。博主認為直接插入排序過程比較容易理解,所以不作過多贅述,直接上 include void main int length sizeo...
七大排序之直接插入排序
整個區間被分為有序區間和無序區間,可以讓陣列的第乙個資料充當有序區間,其他是無序區間,每次將無序區間的第乙個數和有序區間最後乙個數作比較,如果無序區間的數比有序區間的數小,從有序區間的最後乙個數開始比較,直到這個數大於有序區間的數或者下標是 0 停止 如果要比較的數大於有序區間的最後乙個數,則不比較...