刚刚朋友面招银,被一个冒泡排序卡住了,没写对,她非常难过。毕竟她也刷了挺多题,背了一个月面经的。
然后我发现我知道冒泡是怎么排的,但也写不对,就写了一下,总之就是基础太差啦。我认。
public class Maop {
public static void main(String[] args) {
Maop maop=new Maop();
int[] nums={1,2,9,6,3};
nums=maop.maoPao(nums);
for(int i:nums){
System.out.println(i);
}
}
public int[] maoPao(int[] nums){
for(int i=0;i<nums.length-1;i++){
for(int j=0;j<nums.length-i-1;j++){
if(nums[j]>nums[j+1]){
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
return nums;
}
}
我朋友错在j循环的终止条件,其实想一下就相通了,她当时太紧张了,写错了面试官也没给她机会多想一想。就错了。
最差的情况的时间复杂度为O(N^2),最好的情况O(N)