描述????????????????????????????????????????????????????????????????????????????????????????????????
给出若干个数,将数字存储在数组中,然后使用插入排序,按照升序排列输出数字。
输入一个整数n表示有n个数,接着输入这n个数。
按照升序输出这n个数。
思考分析:将一组数组分为多个组,在每个组中插入一个数进行排序,排序后的结果记录再次成立一个组,最后对这组进行插入排序
#include<stdio.h> int main() { ?? ?int k, x, N,i; ?? ?scanf("%d", &N); ?? ?int a[100];//有序数组 ? ?? ?for ( i = 0; i < N; i++) { ?? ??? ?scanf("%d", &a[i]); ?? ?} ?? ?int temp, j; ?? ?for ( i = 1; i < N; i++) ?? ?{ ?? ??? ?j = i - 1; ?? ??? ?temp = a[i]; ?? ??? ?while (a[j] > temp&&j >= 0) ?? ??? ?{ ?? ??? ??? ?a[j + 1] = a[j]; ?? ??? ??? ?j--; ?? ??? ?} ?? ??? ?a[++j] = temp; ?? ?} ?? ?for ( i = 0; i < N; i++) ?? ?{ ?? ? ? ?printf("%d", a[i]); ?? ? ? ?if(i<N-1) ?? ? ? ?printf(" "); ?? ? ? ? ?? ?} ?? ?printf("\n"); ?? ?return 0; }
|