码迷,mamicode.com
首页 > 编程语言 > 详细

c - 冒泡/选择排序.

时间:2014-10-19 11:28:11      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   sp   div   log   bs   

 1 #include <stdio.h>
 2 
 3 void
 4 bubbleSort(int *, int);
 5 
 6 void
 7 selectSort(int *, int);
 8 
 9 void
10 show(int *, int);
11 
12 void
13 swap(int *, int, int);
14 
15 int
16 main(void) {
17     int a[8] = {555, 2, 3, 77, 66, 5, 0, -3};
18     int len = 8;
19     show(a, len);
20     //bubbleSort(a, 4);
21     selectSort(a, len);
22     show(a, len);
23     return 0;
24 }
25 
26 //冒泡排序
27 void
28 bubbleSort(int *a, int len) {
29     for(int i = 0; i < len - 1; i++) {
30         bool isSwap = false;    //若已排好序,则不再排.
31         for(int j = 0; j < len - i - 1; j++) {
32             if(a[j] > a[j+1]) {
33                 swap(a, j, j +1);
34                 isSwap = true;
35             }
36         }
37         if(!isSwap)    break;
38     }
39 }
40 
41 //普通选择排序.
42 void
43 selectSort(int *a, int len) {
44     for(int i = 0; i < len - 1; i++) {
45         bool isSwap = false;    //若已排好序,则不再排.
46         for (int j = i + 1; j < len; j++) {
47             if(a[i] > a[j]) {
48                 swap(a, i, j);
49                 isSwap = true;
50             }
51         }
52         if(!isSwap)    break;
53     }
54 }
55 
56 //一般有3中交换方法,这种方法比较节省内存.
57 void
58 swap(int *a, int i, int j) {
59     a[i] = a[i] ^ a[j];
60     a[j] = a[i] ^ a[j];
61     a[i] = a[i] ^ a[j];
62 }
63 
64 //打印数组
65 void
66 show(int *a, int len) {
67     int i;
68     for(i = 0; i < len; i++)
69         printf("%d ", a[i]);
70     printf("\n");
71 }

 

c - 冒泡/选择排序.

标签:style   blog   color   io   for   sp   div   log   bs   

原文地址:http://www.cnblogs.com/listened/p/4034421.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!