zoukankan      html  css  js  c++  java
  • 冒泡排序算法的温习

    自从大一第一次接触冒泡算法后,就一直没对这个问题搞懂。虽然考试考了很多次,但一直没有时间去一点点弄懂,每次考试,就背背代码。

    趁着这次复习,终于可以一步一步的理解冒泡算法了。

     1 #include "stdio.h"
     2 
     3 void print(int r[], int n)
     4 {
     5     int i;
     6     for(i = 0; i < n; i++)
     7         printf("%d ", r[i]);
     8     puts("
    ");
     9 }
    10 
    11 void BuffleSort_up(int r[], int n)
    12 {
    13     int i, j, temp;
    14     for(i = 0; i < n; i++)
    15     {
    16         for(j = i+1; j < n; j++)
    17         {
    18             if(r[i] > r[j])
    19             {
    20                 temp = r[i];
    21                 r[i] = r[j];
    22                 r[j] = temp;
    23             }
    24         }
    25     }
    26 }
    27 
    28 void BuffleSort(int r[], int n)
    29 {
    30     int i, j, temp;
    31     for(i = 0; i < n; i++)
    32     {
    33         for(j = 0; j < n-i; j++)
    34         {
    35             if(r[j] > r[j+1])
    36             {
    37                 temp = r[j];
    38                 r[j] = r[j+1];
    39                 r[j+1] = temp;
    40             }
    41         }
    42     }
    43 }
    44 
    45 int main()
    46 {
    47     int a[10] = {3, 1, 5, 2, 7, 8, 9, 4, 6, 0};
    48     printf("before sort:
    ");
    49     print(a, 10);
    50     BuffleSort(a, 10);
    51     printf("sort after:
    ");
    52     print(a, 10);
    53     return 0;
    54 }

    冒泡算法的第一层遍历是 n次遍历

    第二层遍历是从i 到 n-1 的遍历

    这样的导致的遍历结果就是每次遍历就会把 最大的数 交换至最后一位。

    不错在此之前,我自己按照自己的理解写了个冒泡算法。

    第一层是从 0 到 n-1 的遍历

    第二层是 从 i+1 到 n-1 的遍历

    这样的遍历 结果是,每一此遍历把最小的数交换至最前面。

  • 相关阅读:
    二维数组中的查找
    浅析Java的Object类
    Alan Turing的纪录片观后感
    近期学习docker遇到的一些问题
    eclipse(STS)安装jd-eclipse插件实现查看API源代码功能
    deepin配置Oracle JDK
    两个有序链表的合并
    Maven 项目中各包单独打成jar包
    一次性密码 && 身份认证三要素
    HTTPS工作流程
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/7246686.html
Copyright © 2011-2022 走看看