佇列優先 之 插入排序實現 插入思想

2021-06-25 19:07:53 字數 772 閱讀 4675

/*

1、第一次用陣列+排序實現類似優先佇列,心情有點小激動;原來資料結構是這樣用的

2、回顧了一下插入排序,再原來有序的陣列的情況下,插入新元素的插入排序(插入排序的活用)

3、這裡是用到了插入排序的思想,而非完全的插入排序的步驟;正如二分思想,他是一種思想,不要

停留在一種方法上、一種資料結構上。

4、poj 2833 時間複雜度 o(n*n),超時,因為優先佇列是由最小(大)堆實現的,時間複雜度o(n*logn)----正好服務優先佇列的要求,保證隊首(棧頂)

元素的優先順序最高,其他元素的優先順序順序不考慮。

5、再插入排序中,增加二分查詢的思想是不是效率高一些呢? —— 比較次數會減少,移動次數還是不會減少,因此還是不如堆排序效率高;還是那句話這是一種思想的昇華。

*/#include #include using namespace std;

int n,pmax,pmin;

void insert_sort(int *a,const int &maxn)

*(a+j+1) = tmp;

}}void insert_sort_min(int *a,const int &key)// 維護最小陣列

*(a+j+1) = key;

}void insert_sort_max(int *a,const int &key)

*(a+j-1) = key;

}// 結果的輸出

void print(int *a,const int &n)

}for(i=0;i

插入排序思想與實現

插入排序的基本思想 每一趟將乙個待排序元素,按其排序碼大小插入到前面已經排好序的一組元素的適當位置上,直到所有待排序元素元素全部插入為止。在這裡,這裡介紹兩種具體的插入排序演算法 直接插入排序,希爾排序。1 直接插入排序 直接插入排序的思想 當插入第i i 1 個元素時,前面的arr 0 arr i...

插入排序之折半插入排序(c 實現)

插入排序有直接插入排序,折半插入排序 又叫二分插入排序 鍊錶插入排序,希爾排序等。在排序中屬於穩定排序型別。折半插入排序的演算法思想 1 計算 0 i 1 的中間點,用 i 索引處的元素與中間值進行比較,如果 i 索引處的元素大,說明要插入的這個元素應該在中間值和剛加入i索引之間,反之,就是在剛開始...

插入排序之表插入

表插入 時間複雜度o n 2 附加空間o 1 穩定排序 define crt secure no warnings include using namespace std define len 8 有len個元素要排 struct record void linklistinsertsort rec...