1.冒泡排序
冒泡排序(Bubble Sort) 最为简单的一种排序,通过重复走完数组的所有元素,通过打擂台的方式两个两个比较,直到没有数可以交换的时候结束这个数,再到下个数,直到整个数组排好顺序。因一个个浮出所以叫冒泡排序。双重循环时间O(n^2)
void BubbleSort ( int arr[] , int len ){ //冒泡排序算法
if(arr==NULL||len<=0)
{
return ;
}
int temp;
bool isSorted = false;
for(int i=0; i<len && !isSorted; i++ )
isSord = true; //判断是否是有序的,如果是第一轮是有序的则不进行后面的排序。
for(int j=0; j<len-i-1; j++)
if(arr[j] > arr[j+1]){
isSorted = false;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
print(arr,len);
}
2.选择排序
选择排序(Select Sort) 是直观的排序,通过确定一个Key最大或最小值,再从带排序的的数中找出最大或最小的交换到对应位置。再选择次之。双重循环时间复杂度为O(n^2)