1.
原理:从左至右,不停比较两者大小,较大的右移动,每一次都能将最大的值放在最后一位。
比较次数每次循环-1。
代码:
比较次数:N*(N-1)/2;
交换次数:N*(N-1)/2;
O(N2)
原理:从左至右,不停比较两者大小,较大的右移动,每一次都能将最大的值放在最后一位。
比较次数每次循环-1。
代码:
public static int[] bubblesort(int[] numbers){
int length = numbers.length;
for(int i =0;i<length;i++){
for(int j=0;j<length-i-1;j++){
if(numbers[j]>numbers[j+1]){
int temp = numbers[j+1];
numbers[j+1] = numbers[j];
numbers[j] = temp;
}
}
}
return numbers;
}
比较次数:N*(N-1)/2;
交换次数:N*(N-1)/2;
O(N2)