zoukankan      html  css  js  c++  java
  • 实习之路--点滴积累二_冒泡

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

    冒泡排序

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

    数组 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 }

    运行结果如图:

  • 相关阅读:
    标定相关-一些资源
    论文基础-5几何知识
    论文基础-3微积分
    h5页面 判断网页是否由微信或qq内置浏览器打开
    Html5 页面后退并刷新
    h5 页面下拉刷新
    绑定点击事件 传参
    公众号做分享功能
    清微信缓存
    手机端适配
  • 原文地址:https://www.cnblogs.com/casparzheng/p/4370163.html
Copyright © 2011-2022 走看看