#include<iostream>usingnamespace std;voidInsertSort(int a[],int n){for(int i =2; i <= n;++i){
a[0]= a[i];int j = i -1;while(a[0]< a[j]){
a[j +1]= a[j];
j--;}
a[j +1]= a[0];}}intmain(){int n, a[100];
cin >> n;for(int i =1; i <= n;++i){
cin >> a[i];}InsertSort(a, n);for(int i =1; i <= n;++i){
cout << a[i]<<" ";}return0;}
希尔排序
#include<iostream>usingnamespace std;voidShellSort(int a[],int n){for(int d = n /2; d >=1; d /=2){for(int i = d +1; i <= n;++i){
a[0]= a[i];int j = i - d;while(j >0&& a[0]< a[j]){
a[j + d]= a[j];
j -= d;}
a[j + d]= a[0];}}}intmain(){int n, a[100];
cin >> n;for(int i =1; i <= n;++i){
cin >> a[i];}ShellSort(a, n);for(int i =1; i <= n;++i){
cout << a[i]<<" ";}return0;}
#include<iostream>usingnamespace std;voidSelectSort(int a[],int n){for(int i =1; i <= n;++i){int min =0x3f;int k =0;for(int j = i; j <= n;++j){if(min > a[j]){
min = a[j];
k = j;}}int t = a[i];
a[i]= a[k];
a[k]= t;}}intmain(){int n, a[100];
cin >> n;for(int i =1; i <= n;++i){
cin >> a[i];}SelectSort(a, n);for(int i =1; i <= n;++i){
cout << a[i]<<" ";}return0;}
堆排序
#include<iostream>usingnamespace std;voidsift(int a[],int k,int m){int i = k;int j =2* i;int t = a[i];while(j <= m){if(j < m && a[j]< a[j +1])
j++;if(t > a[j])break;else{
a[i]= a[j];
i = j;
j =2* i;}}
a[i]= t;}voidHeapSort(int a[],int n){for(int i = n /2; i >=1;--i){sift(a, i, n);}for(int i =1; i < n;++i){swap(a[1], a[n - i +1]);sift(a,1, n - i);}}intmain(){int n, a[100];
cin >> n;for(int i =1; i <= n;++i){
cin >> a[i];}HeapSort(a, n);for(int i =1; i <= n;++i){
cout << a[i]<<" ";}return0;}