插入排序(C语言实现) 分类: 数据结构 2014-12-03 14:48 120人阅读 评论(0) 收藏
插入排序
思想:1.从第二个数开始比较
2.如果比第一个数大,就排在右边,否则,就在左边,同时在和左边的数一一比较
如果图看懂了,接下来的代码,将非常简单理解
头文件 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; } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。