给定一组数据,以插入排序的方法实现由小到大输出。注意,C语言中数组下标由0开始。
#include<stdio.h> void insert_sort(int a[]){ //for(int j=1;j<sizeof(a)/sizeof(a[0]);j++){ //在函数中这种方法无法得到数组长度,不知道为什么! for(int j=1;j<10;j++){ int temp=a[j]; int i=j-1; while(i>=0 && a[i]>temp){ a[i+1]=a[i]; i=i-1; } a[i+1]=temp; } } int main(){ int arr[10]; printf("please input ten numbers:"); for(int i=0;i<10;i++){ scanf("%d",&arr[i]); } /** for(int j=1;j<sizeof(arr)/sizeof(arr[0]);j++){ //在主函数体内这种方法可以得到数组长度 int temp=arr[j]; int i=j-1; while(i>=0 && arr[i]>temp){ arr[i+1]=arr[i]; i=i-1; } arr[i+1]=temp; } */ insert_sort(arr); printf("the sorted array is:"); for(int i=0;i<10;i++){ printf("%d ",arr[i]); } return 0; }