1,冒泡排序
public int [] bubbleSort(int [] args){
for(int i=0;i<args.length;i++){
for(int j=0;j<args.length-i-1;j++){
if(args[j]>args[j+1]){
int temp;
temp=args[j];
args[j]=args[j+1];
args[j+1]=temp;
}
}
}
return args;
}
n个元素,每次选择一个最大的元素沉下去,然后继续在剩余的n-1个中选择最大的.
这里涉及到一个找最大值的方法,即:
for(int j=0;j<args.length-i-1;j++){
if(args[j]>args[j+1]){
int temp;
temp=args[j];
args[j]=args[j+1];
args[j+1]=temp;
}
}
从0#开始比较,保持当前迭代元素后面的元素比自己大,这样一次循环下来,至少找到了最大的.
关于查找最大值的方法,我们知道一般是这样的:
int max=args[0];
for(int i=0;i<args.length;i++){
if(args[i]>max){max=args[i];}
}
冒泡算法的时间代价是n(n-1)/2,时间复杂性为O(n2)。