若是圖看懂了,接下來的代碼,將很是簡單理解
函數
頭文件 sort.h #include <stdio.h> void Print(int* arr,int len) { int i; for(i=0;i<len;i++) { printf("%d ",arr[i]); } printf("\n"); } void Swap(int* a,int* b) { *a=*a+*b; *b=*a-*b; *a=*a-*b; } 主函數main #include "sort.h" void InsertSort(int* arr,int len); int main(void) { int arr[]={5,4,3,2,1}; int len=sizeof(arr)/sizeof(int); Print(arr,len); InsertSort(arr,len); Print(arr,len); return 0; } void InsertSort(int* arr,int len) { int temp,in,out; if(arr!=NULL) { for(out=1;out<len;out++) { temp=arr[out]; in=out; while(in>0 && arr[in-1]>temp) { // arr[in]=arr[in-1]; Swap(&arr[in],&arr[in-1]); //交換兩個變量的值 in--; } // arr[in]=temp; } } }
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。code