直接插入排序
直接插入排序:
代码:
#include<stdio.h> int insert(int a[],int num) { intj; for(inti=2; i<=10; i++) { a[0]=a[i]; j=i-1; while(a[0]<a[j]){ a[j+1]=a[j]; j--; } a[j+1]=a[0]; } } int main() { inta[11]; for(inti=1; i<=10; i++) scanf("%d",&a[i]); insert(a,10); for(inti=1; i<=10; i++) printf("%d",a[i]); return0; }
注释:
#include <stdio.h> void insort(int s[], int n) { /*自定义函数isort*/ inti, j; for(i = 2; i <= n; i++) { /*数组下标从2开始,0做监视哨,1一个数据无可比性*/ s[0]= s[i]; /*给监视哨赋值*/ j= i - 1; /*确定要进行比较的元素的最右边位置*/ while(s[0] < s[j]) { s[j+ 1] = s[j]; /*数据右移*/ j--; /*移向左边一个未比较的数*/ } s[j+ 1] = s[0]; /*在确定的位置插入s[i]*/ } } void main() { inta[11], i; /*定义数组及变量为基本整型*/ printf("请输入10个数据:\n"); for(i = 1; i <= 10; i++) scanf("%d",&a[i]); /*接收从键盘中输入的10个数据到数组a中*/ printf("原始顺序:\n"); for(i = 1; i < 11; i++) printf("%5d",a[i]); /*将未排序前的顺序输出*/ insort(a,10); /*调用自定义函数isort()*/ printf("\n插入数据排序后顺序:\n"); for(i = 1; i < 11; i++) printf("%5d",a[i]); /*将排序后的数组输出*/ printf("\n"); }
版权说明
著作权归作者所有©。 商业转载请联系作者获得授权,非商业转载请注明出处。 本文作者:Joe.Smith 发表日期:2016年10月7日 本文链接:http://blog.csdn.net/qq_26816591/article/details/52782255 来源:CSDN 更多内容:关于visual studio 2010 直接复制粘贴会出现乱码的解决方法
不为失败找原因,要为成功找方法!