选择排序
遍历数组记录最小值下标,与第一项依次交换。
for(int i=1;i<n;i++){
int count=i;
for(int j=i+1;j<=n;j++){
if(num[count]>num[j])count=j;
}
swap(num[count],num[i]);
}
冒泡排序
将大气泡换到后面
for(int i=n;i>=1;i--){
for(int j=1;j<i;j++){
if(num[j]>num[j+1])swap(num[j],num[j+1]);
}
}
插入排序
将第j个和前一个比较
for(int i=2;i<=n;i++){
for(int j=i-1;j>=1&&num[j]>num[j+1];j--){
swap(num[j],num[j+1]);
}
}
快速排序
选择最后一个数字
1.0 荷兰国旗问题思想,分两块 , 一次处理一个数m
2.0 荷兰国旗问题思想,分三块 ,一次处理多个数m
3.0 随机快排
- acwing&code
void quick_sort(int arr[],int l,int r){ if(l>=r)return; int i=l-1