对插入排序的理解
给一堆无序数(n个数据)进行插入排序步骤:
第1个元素进行排序,插入第2个元素;
前2个进行排序,插入第3个元素;
前3个元素进行排序,插入第3个元素;
……
前n个数据进行排序,完成排序
注意:插入元素到有序的序列中比较排序哦
OK,很简单!
接下来写一个数组的插入排序
void insertsort(int R[],int n) { int i,j,temp; for(i=1;i<n;++i) { temp=R[i]; j=i-1; while(j>=0&&temp<R[j]) { R[j+1]=R[j];//不断更新该数组出前j个最小的数 --j; } R[j+1]=temp;//找到插入位置,将最小的数放在最前面 } }
下面是主函数
int main() { printf("插入排序算法\n输入8个数据进行排序:\n"); int R[8]; for(int i=0;i<=7;i++) { scanf("%d",&R[i]); } insertsort(R,8); printf("\n小大排序之后的顺序:"); for(i=0;i<=7;i++) { printf("%d ",R[i]); } printf("\n"); return 1; }
运行结果
ok没问题!