选择排序:
#include<iostream>
using namespace std;
void selectsort(int a[],int n){//数组传的就是首地址
for(int i=0;i<n-1;i++){
int min=i;
for(int j=i+1;j<n;j++){
if(a[j]<a[min])
min=j;
}
if(min!=i){
int t=a[min];
a[min]=a[i];
a[i]=t;
}
}
}
int main(){
const int N=10;
int a[N]={3,4,5,2,1,7,6,9,8,10};
selectsort(a,N);
for(int i=0;i<N;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
(直接)插入排序:
直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。
图片来自:https://www.cnblogs.com/chengxiao/p/6103002.html
代码实现
#include<iostream>
using namespace std;
void insertsort(int a[],int n){
for(int i=1;i<n;i++){
int temp=a[i],j=i;//temp存当前要插入的值 j从i-1向前搜索
while(j>0&&temp<a[j-1]){
a[j]=a[j-1];
j--;
}
a[j]=temp;//插入位置为j
}
}
int main(){
const int N=10;
int a[N]={3,4,5,2,1,7,6,9,8,10};
insertsort(a,N);
for(int i=0;i<N;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}