首页 > 其他 > 详细

实习之路--点滴积累二

时间:2015-03-26 23:12:50      阅读:164      评论:0      收藏:0      [点我收藏+]

写了个快排之后,总得再写点啥,冒泡、插入等的排序都还没写呢,那行,继续。

冒泡排序

 原理依旧简单,没事,从简单做起。假设要将数组从小到大排序:

数组 s[] = { 10, 3, 29, 0}

(1)数组中的元素,从头开始,两两之间进行比较    // 10 和 3 比较

(2)然后将小的放前面,大的放后面          // 10 和 3 比较完后,数组 s[] = { 3, 10, 29, 0},紧接着 10 和 29 进行比较

(3)一趟遍历后就会固定一个元素的位置        //  遍历一趟后 s[] = { 3, 10, 0, 29}, 29 的位置固定了

(4)多趟遍历,最终数组就排好序了          //   s[] = { 0, 3, 10, 29}

需要注意的是:

(1)执行的趟数为 n - 1 趟

(2)对于循环的变量 j ,j < n - i - 1

 

代码如下:

 1 void Bubble_Sort(long *p, long n)
 2 {
 3     for (long i = 0; i < n - 1; i++)
 4     {
 5         for (long j = 0; j < n - i - 1; j++)
 6         {
 7             if (p[j] > p[j + 1])
 8             {
 9                 long temp = p[j];
10                 p[j] = p[j + 1];
11                 p[j + 1] = temp;
12             }
13         }
14     }
15 }

测试代码如下:

1 int main()
2 {
3     long s[] = { 10, 3, 29, 0 };
4     Bubble_Sort(s, 4);
5     for (long i = 0; i < 4; i++) cout << s[i] << ends << ends;
6     return 0;
7 }

运行结果如图:

技术分享

实习之路--点滴积累二

原文:http://www.cnblogs.com/casparzheng/p/4370163.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!