首页 > 代码库 > 二重指针实现排序

二重指针实现排序

 1 //双指针对十个数排序
 2 
 3 #include <stdio.h>
 4 #include <stdlib.h>
 5 #define N 8
 6 //2017.3.5
 7 int main()
 8 {
 9     //初始化数组 赋值N个数 用指针数组指向
10     int num[N];
11     int *pNum[N];
12     int **p = NULL;
13     for (int i = 0; i < N; i++)
14     {
15         num[i] = rand() % 100;//产生随机数
16         printf("%d\t", num[i]);
17         pNum[i] = &num[i];//这里方便二维指针
18     }
19     printf("\n");
20     p = pNum;
21     for (int i = 0; i < N; i++)
22     {
23         for (int j = i + 1; j < N; j++)
24         {
25             if (**(p + i) >= **(p + j))
26             {
27                 int temp = **(p + i);
28                 **(p + i) = **(p + j);
29                 **(p + j) = temp;
30             }
31         }
32     }
33     //打印结果
34     for (int i = 0; i < N; i++)
35     {
36         printf("%d\t", **(p + i));
37     }
38     getchar();
39     return 1;
40 }

技术分享

二重指针实现排序