zoukankan      html  css  js  c++  java
  • 冒泡排序 & 选择排序(升序)

    软件工程上老师讲流程图时,要求画冒泡排序和选择排序的流程图--------问题来了,故想基于百度两种排序后,自我总结的写些什么

    请将一维数组a[n] 里面的 n个元素  升序排好

    ---------------------------------------------------------

    两种排序的共同点:

    外循环:趟数(n-1)  for( i=0; i<n-1; i++ )

    内循环:比较次数(在n-1基础上, 每趟后, 减1)   冒泡的 for( j=0; j<n-1-i; j++ )  /  选择的 for( j=i+1; j<n; j++ )

    ---------------------------------------------------------------------

    冒泡排序(升序)

    特点:将两个相邻元素进行比较, 前 > 后   交换值! ==========》     为了将 “大” 值 往后面放 (气泡越大越往上浮)

     1 //冒泡排序:
     2 int a[5] = {4,7,5,9,1};    int n = 5;
     3 
     4 int i,j;
     5 int temp;
     6 
     7 for(i=0; i<n-1; i++)    //外循环:趟数(n-1)
     8 {
     9     for(j=0; j<n-1-i; j++)    //内循环:次数(在n-1的基础上,每趟后 减1)
    10     {
    11         if(a[j] > a[j+1])    //相邻两个元素比较,前>后 交换!
    12         {
    13             temp = a[j];
    14             a[j] = a[j+1];
    15             a[j+1] = temp;
    16         }
    17     }
    18 }

    流程图:暂略

    -----------------------------------------------------------------------------------

    选择排序(升序)

    特点:定义一个min变量,用来存 “小” 元素  的下标,赋值:①min = i (i=0)。i:外循环, j:内循环;

    在待排序的元素中,②内循环:if( a[min] > a[j] )  min = j;  //暂理解为数组元素的下标变了,但 元素的值是没有变的;

    找到 “小” 值后,③外循环:if( min != i )  { temp=&a[i];  &a[i]=&a[min];  &a[min]=temp;}  //将 “小”值 放到数组前面,这个元素(已排好序) 不参与后面的(未排好序) 比较了!

     1 //选择排序:
     2 int a[5] = {4,7,5,9,1};    int n = 5;
     3 int i,j,min;
     4 int temp;
     5 
     6 for(i=0; i<n-1; i++)    //外循环:趟数(n-1)
     7 {
     8     min = i;
     9     for(j=i+1; j<n; j++)    //内循环:次数(在n-1的基础上,每趟后 减1)
    10     {
    11         if(a[min] > a[j])
    12             min = j;    //暂理解为数组元素的下标变了,但    元素的值是没有变的
    13     }
    14 
    15     if(min != i)
    16     {
    17         temp = &a[i];
    18         &a[i] = &a[min];
    19         &a[min] = temp;
    20     }
    21 }

    流程图:暂略(百度易得,实在懒得自己画了)

  • 相关阅读:
    KindEditor自动过滤首行缩进和全角空格的解决方法
    网站流量、连接数等监控
    VSFTP的使用
    CentOs 设置静态IP
    MySQL 5.7版本sql_mode=only_full_group_by问题
    使用密钥登录CentOS系统(基于密钥的认证)
    FIRMWARE BUG – THE BIOS HAS CORRUPTED HW-PMU RESOURCES
    Ubuntu上的MySQL可以远程访问
    自动生成单据编号
    SQL Server 重置SA密码语句
  • 原文地址:https://www.cnblogs.com/Martin-CH/p/10575677.html
Copyright © 2011-2022 走看看