1 #include <stdio.h>
2 #include <stdlib.h>
3 /* { 4, 2, 6, 11, 8, 3, 5, 12, 9, 10 };*/
4 #define swap(x,y) (x)=(x)^(y);\
5 (y) = (x) ^ (y); \
6 (x) = (x) ^ (y)
7
8 void maopaosort(int *a, int n);
9
10 void insertsort(int *a, int n, int inum)
11 {
12 maopaosort(a, n);
13 a = (int *)realloc(a, sizeof(int)*(n + 1));
14 if (inum > a[n - 1])
15 {
16 a[n] = inum;
17 }
18 else if (inum < a[0])
19 {
20 for (int i = n + 1; i>0; i--)
21 {
22 a[i - 1] = a[i - 2];
23 }
24 a[0] = inum;
25 }
26 else
27 {
28
29 for (int i = 0; i < n - 1; i++)
30 {
31 if (inum > a[i] && inum < a[i + 1])
32 {
33 for (int j = n; j>i; j--)
34 {
35 a[j] = a[j - 1];
36 }
37 a[i + 1] = inum;
38 }
39 }
40 }
41 }
42
43
44 void Selectionsort(int *a, int n)
45 {
46 for (int i = 0; i < n; i++)
47 {
48 for (int j = i + 1; j < n; j++)
49 {
50 if (a[i] > a[j])
51 {
52 swap(a[i], a[j]);
53 }
54 }
55 }
56
57 }
58
59
60
61 void maopaosort(int *a, int n)
62 {
63 for (int i = 0; i < n - 1; i++)
64 {
65 for (int j = 0; j < n - 1 - i; j++)
66 {
67 if (a[j] > a[j + 1])
68 {
69 swap(a[j], a[j + 1]);
70 }
71 }
72 }
73 }
74
75 int main()
76 {
77 int *a = (int *)malloc(sizeof(int)* 10);
78 //int a[10] = { 4, 2, 6, 11, 8, 3, 5, 12, 9, 10 };
79 a[0] = 4;
80 a[1] = 2;
81 a[2] = 22;
82 a[3] = 11;
83 a[4] = 8;
84 a[5] = 3;
85 a[6] = 5;
86 a[7] = 12;
87 a[8] = 9;
88 a[9] = 10;
89
90 //maopaosort(a, 10);
91 //Selectionsort(a, 10);
92 insertsort(a, 10, 7);
93 for (int i = 0; i < 11; i++)
94 {
95 printf("%d,", a[i]);
96 }
97 getchar();
98 return 1;
99 }