c-泡立ち/選択ソート.


 1 #include <stdio.h>

 2 

 3 #define LEN 10

 4 #define TRUE 1

 5 #define FALSE 0

 6 

 7 /*

 8   10       

 9 */

10 //     (      ,             ,           ,        ,     ).

11 void

12 select_sort(int *a) {

13     int tmp;    //            .

14     for(int i = 0; i < LEN - 1; i++) {

15         for(int j = i + 1; j < LEN; j++) {

16             if(a[i] > a[j]) {

17                 tmp = a[i];

18                 a[i] = a[j];

19                 a[j] = tmp;

20             }

21         }

22     }

23 }

24 

25 //    .

26 void

27 bubble_sort(int *a) {

28     int tmp;

29     int swap;    //             ,  ,       .

30     for(int i = 0; i < LEN -1; i++) {

31         swap = FALSE;    

32         for(int j = 0; j < LEN - 1 - i; j++) {

33             if(a[j] > a[j + 1]) {

34                 tmp = a[j];

35                 a[j] = a[j + 1];

36                 a[j + 1] = tmp;

37                 swap = TRUE;

38             }

39         }

40         if(!swap)    //      ,       .

41             break;

42     }

43 }

44 

45 void 

46 show(int *a) {

47     for(int i = 0; i < LEN; i++)

48         printf("%d ", a[i]);

49     printf("
"); 50 } 51 int 52 main(void) { 53 //10 . 54 int a[] = {-1, -7, 8, 2, 7, 321, 3, 9, 11, 17}; 55 show(a); 56 select_sort(a); 57 //bubble_sort(a); 58 show(a); 59 printf("
"); 60 }