八大排序
前言
排序,就是重新排列表中的元素,使得表中元素满足按关键字有序的过程。
排序有许多种,常用的八大内部排序为冒泡排序、插入排序、选择排序、希尔排序、快速排序、归并排序、基数排序、堆排序
这几种排序没有绝对的优劣,每种排序都有他们适用范围
一、冒泡排序
冒泡排序每一趟排序可以确定一个元素的最终位置,若一次扫描并没有元素进行交换,则说明表已有序。
void bubbleSort(ElemType a[], int n){
for(int i = 0; i < n - 1; i++){
bool flag = false;
for(int j = n - 1; j > i; j--){
if(a[j] < a[j - 1]){
swap(a[j], a[j - 1]);
flag = true;
}
}
if(flag == false){
return;
}
}
}
冒泡排序的性能分析:空间效率为O(1),最坏时间复杂度为O(),平均时间复杂度为O(