插入排序最好的執行時間是o(n),已經排序好了情況下,平均情況最情況都是o(n2),所以處理隨機的未排序資料時並不是好的演算法。
通過將每個新元素與已經排序好的元素做比較,並將其插入到正確的位置來建立乙個排序的陣列,就像玩撲克一樣,拿到新的牌放入到已經排序好的中間。
插入排序是穩定的原地排序演算法,特別適合對小的資料集合進行排序,通常作為其他更複雜的排序演算法的構建模組。
void insertionsort(int
*a, int len)
a[i] = val;
break;}}
}}
用整數字的每一位來表示乙個數字。詳細參考《程式設計珠璣》。
#define bitsperword 32
#define shift 5
#define mask 0x1f
#define n 10000000
int a[1 + n/bitsperword];
void
set(int i)
void clr(int i)
int test(int i)
int main(void)
排序演算法集合
氣泡排序 public static int maopao int param return param 快速排序 public static int quick int param,int left,int right return param 分割陣列,相當於分治演算法,快速排序的核心 priv...
排序演算法集合
從未排序的集合中找出乙個元素,依次與已排序的集合元素進行比較,如果滿足規則,小於或是等於,直接插入,依次迴圈,直至待排序集合元素為空。清單.插入排序 直接插入排序 param arr public void insertsort int arr 從待排序元素集合中,找出其中最大或是最小的元素,插入到...
排序演算法集合
就按照 演算法導論 裡面的順序寫吧 原理都不講了,只是貼一下 給參考。其實書上也寫得很清楚,我只是用c 實現出來而已。1.歸併排序 merge sort include include include include include using namespace std 二路歸併排序 遞迴實現 v...