#include<stdio.h>

//插入排序,
void sortArray(int p[] , int n);
void insert(int p[],int a,int b);
//选择排序
void selectedSort(int p[],int n);
void swap(int &p1,int &p2);
//预定义
#define ArrayCounts 9
int main(){
   int a[]={1,3,8,2,6,5,7,4,9};
   sortArray(a,ArrayCounts);
   for(int i =0; i<ArrayCounts;i++){
       printf(" %d ",a[i]);    
   }
   printf("\n");
   int b[]={1,3,8,2,6,5,7,4,9};
   selectedSort(b,ArrayCounts);
   for(int i =0; i<ArrayCounts;i++){
       printf(" %d ",b[i]);    
   }
   printf("\n");
   return 0;
}
void sortArray(int p[] , int n){
   for(int i =1;i<n;i++){
       for(int j=0;j<i;j++){

//找到需要插入的位置

           if(p[i]<p[j])
               insert(p,j,i);
       }
   }
}

//插入函数的具体实现

void insert(int p[],int a,int b){
   int temp=p[b];
   printf("temp:%d\n",temp);
   while(a<b){
       p[b]=p[b-1];
       b--;
   }
   p[a]=temp;
}
void selectedSort(int p[],int n){
   int index;
   for(int i=0;i<n;i++){

//每次找到最小值的下标

       index=i;
       for(int j=i+1;j<n;j++){
           if(p[index]>p[j])
               index=j;
       }

//将最小值放在最前面

       swap(p[i],p[index]);
   }
}
void swap(int &p1,int &p2){
   int temp=p1;
   p1=p2;
   p2=temp;
}