没有某一种特定的排序方法可以无条件的优于其他方法。
插入排序 适用于 几乎有序的排序表, 以及短小数据表,因为实现简便,开销不大。
归并排序 最差情形的时间复杂度是所有排序方法中最好的,但使用的辅助存储空间比堆排序多很多。
快速排序 在平均情形中有最好的性能,但最差时间复杂度是O(n2)。
各种排序方法的时间复杂度
插入排序:在已排序的i条记录中插入一条新记录,得到有序的i+1条记录。
void insert(element e, element a[], int i) {
a[0] = e;
while(e.key < a[i].key){
a[i+1] = a[i];
i--;
}
a[i+1] = e;
}