选择排序,插入排序学习笔记
[算法教程] 几种经典排序的实现 @blibili正月点灯笼 选择排序: 对于一个乱序数组(size=n) 1.寻找其中的最大(小)值 2.放到最右边(和最后一位交换位置) 3.再从原数组size=n-1同样寻找最大值(此时这个是整个数组第二大的值了(如果有两个相同最大值不影响)) 4.继续放到在size=n-1的最右处 5.一直循环到size=1结束排序 数据举例: 3 7 4 2 6 1 (size = 6) 遍历第一遍,找到max = 7;放到最右边,此时: 3 1 4 2 6 7 -->我们需要的是 3 1 4 2 6(size = 5) 遍历,找到max = 6;放到最右边(当然6本来就在最右边,操作后仍不变),此时: 3 1 4 2 6 --> 3 1 4 2(size = 4) 遍历,找到max = 4;放到最右边 3 1 2 4 --> 3 1 2 (size = 3)以此类推 代码实现: #include<stdio.h> #include<iostream> using namespace std; void selection_sort(int *arr,int n); int findmax(int *arr,int n); void swap(int *a,int *b); int main(){ int arr[]={1,3,4,5,7,3,88,44