冒泡排序和选择排序
学习内容来自牛客网:https://www.nowcoder.com/study/live/716
一、冒泡排序
// 和下一个比较,大的靠后站,像冒泡泡一样
for(int i = 0; i < n-1; i++)
{
for(int j = 0; j < n-i-1; j++)// 后面的排好了的就不用动了,所以减去 i+1
{
if(arr[j] > arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
二、 选择排序
// 找出最小数,最小的数和第一个数交换,以此类推
for(int i = 0; i < n-1; i++)
{
int min = i;
for(int j = i+1; j < n; j++)// 前面的数拍好了不用比较,从i+1开始找第i小的数
{
if(arr[min] > arr[j]){
min = j;
}
}
swap(arr[min],arr[i]);
}