• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
指尖上的快乐
博客园    首页    新随笔    联系   管理    订阅  订阅

数组冒泡,选择,插入排序

 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 }

 

posted @ 2015-07-02 20:54  指尖上的快乐  阅读(110)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3