s3 冒泡排序
一:解题思路
Time:O(n^2),Space:O(1)
二:完整代码示例 (C++版和Java版)
C++:
template <typename T>
static void Swap(T& a,T& b)
{
T c(a);
a=b;
b=c;
}
template <typename T>
static void Bubble(T array[],int len,bool min2max=true)
{
if(len==0) return ;
bool exchange=true;
for(int i=0;i<len&&exchange;i++)
{
exchange=false;
for(int j=len-1;j>0;j--)
{
if(min2max?(array[j]<array[j-1]):(array[j]>array[j-1]))
{
exchange=true;
Swap(array[j-1],array[j]);
}
}
}
}
Java:
private void Swap(int[] array,int i,int j) { int temp=array[i]; array[i]=array[j]; array[j]=temp; } public void Bubble(int[] array) { if(array==null || array.length==0) return; int n=array.length; boolean exchange=true; for(int i=0;i<n&&exchange ;i++) { exchange=false; for(int j=n-1;j>0;j--) { if(array[j]<array[j-1]) { Swap(array,i,j); exchange=true; } } } }

浙公网安备 33010602011771号