数据结构之插入排序:折半插入排序算法
生活随笔
收集整理的這篇文章主要介紹了
数据结构之插入排序:折半插入排序算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
排序算法:折半插入排序算法
- 思維導圖:
- 折半插入排序算法的定義:
- 折半插入排序算法的原理:
- 折半插入排序算法的代碼實現:
- 折半插入排序算法的性能:
思維導圖:
折半插入排序算法的定義:
插入排序時查找要插入位置用折半查找法
折半插入排序算法的原理:
見直接插入排序
折半插入排序算法的代碼實現:
void BInsertSort(int a[],int n){int low,high,mid;int i,j; for(i=2;i<n;i++){a[0] = a[i];low = 1;high = i-1;//折半查找while(low <= high){mid = (low+high)/2;if(a[mid] > a[0])high = mid-1;elselow = mid+1;}//移動for(j = i-1;j>=high+1;j--)a[j+1] = a[j];a[high+1] = a[0];} }折半插入排序算法的性能:
時間復雜度:O(n^2)
與“直接插入排序”相比,比較關鍵字的次數減少了,但是移動元素的次序沒變,整體來看時間復雜度依然是O(n^2)
空間復雜度:O(1)
穩定
只適用與順序存儲
總結
以上是生活随笔為你收集整理的数据结构之插入排序:折半插入排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop视频教程6折 低达4.5折
- 下一篇: 第一章 Qt入门