冒泡排序
规则(以从小到大为例)
- 相邻的元素两两比较,小的放左边,大的放右边
- 第一轮比较完毕之后,最大值就已经确认放到右边了,则第二轮可以少循环遍历一次,以此类推
- 如果数组中有n个数据,总共只需遍历n-1次即可
案例(java)
int[] array = {2,1,3,5,4}
//外循环:表示要执行多少轮的循环,如果有n个数据则执行n-1轮
//-1:亦是为了防止索引越界
for(int i = 0
//内循环:每一轮循环是怎么比较数据并找到最大并放到最右边
//-i:提高效率,每一轮执行的次数都应该比上一轮少一次
for(int j = 0
if(array[i] > array[i+1]){
int temp = array[i]
array[i] = array[i+1]
array[i+1] = temp
}
}
}
print(array)
选择排序
规则
- 从0索引开始,拿着每个索引上的元素跟后面的元素依次比较,小的放前面,大的放后面,以此类推
- 如果数组中有n个数据,总共只需遍历n-1次即可
案例(java)
int[] array = {2, 4, 1, 5, 3}
//外循环:需要循环n-1轮
for (int i = 0
//内循环:拿着每一轮中的i与i后面的数据(i+1,i+2...)依次进行比较
for (int j = i + 1
System.out.println("i:" + i + " j:" + j)
if (array[i] > array[j]) {
int temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
print(array)