排序方法多种多样,冒泡排序与桶排是最基础的。
首先是冒泡排序
冒泡排序是最基础的排序,它的原理也很简单,那就是重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来(顺序随便定),而它的效果则是这样:
初始状态: 158 39 130 169 156
第一次交换:39 158 130 169 156
第二次交换:39 130 158 169 156
第三次交换:39 130 158 156 169
第四次交换:39 130 156 158 169
它的时间复杂度最坏为O(n^2),最好为O(n)。
代码是很简单的:
#include<bits/stdc++.h>
using namespace std;
void bubble_sort(int A[],int len)
{
for(int i=0;i<len-1;++i)
{
for(int j=0;j<len-1-i;++j)
{
if(A[j]>A[j+1]) swap(A[j],A[j+1]);
}
}
}
int main()
{
int A[10]={5,2,1,9,8,0,7,3,6,4};
bubble_sort(A,10);
for(int i=0;i<10;++i)
cout<<A[i]<<" ";
cout<<endl;
return 0;
}
而桶排呢,就是暴力大模拟了,简单地说,就是每进来一个数据