排序算法
直接排序算法
将数组中的元素依次与之前的元素相比较,如果该元素小于前面的元素,则两者调换位置。时间复杂度为O(n2)
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < i; j++){
if (array[i]<array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
简单选择排序算法
- 从待排序序列中找到最小元素
- 如果该元素不是第一个元素则与第一个元素交换位置
- 从余下的元素中找到最小的元素,重复前两个步骤
时间复杂度为O(n2)
for (int i = 0; i < array.length; i++) { for(int j = i+1; j < array.length; j++){ if (array[j]<array[i]){ int temp = array[j]; array[j] = array [i]; array[i] = temp; } } }
冒泡排序
- 相邻两个元素依次比较,保证右边元素大于左边。比较完可保证最后的元素最大。
- 去除最后一位重复第一步。
时间复杂度为O(n2)
for (int i = 0; i < array.length; i++) {
for (int j = 0; j<array.length-i;j++){
if (array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = array[j];
}
}
}
return array;

浙公网安备 33010602011771号