这是一个冒泡排序的方法,请汲取其中的思想。
有一组数: 1,2,3,4,5,6
请将这组数用降序排列。
我们可以将数组里面的数两两相比,如果第二个数比第一个数大,那么将第二个数值与第一个数值交换,然后让其循环比较。
[1,2,3,4,5,6]               [2,3,4,5,6,1]             [3,4,5,6,2,1]            [4,5,6,3,2,1]              [5,6,4,3,2,1]

[2,1,3,4,5,6]               [3,2,4,5,6,1]             [4,3,5,6,2,1]            [5,4,6,3,2,1]              [6,5,4,3,2,1]

[2,,1,4,5,6]               [3,4,2,5,6,1]             [4,5,3,6,2,1]            [5,6,4,3,2,1]              [6,5,4,3,2,1]

[2,3,,5,6] →→→→   [3,4,5,2,6,1] →→→→ [4,5,6,3,2,1] →→→→[5,6,4,3,2,1] →→→→  [6,5,4,3,2,1]

[2,3,4,5,1,6]               [3,4,5,6,2,1]             [4,5,6,3,2,1]            [5,6,4,3,2,1]              [6,5,4,3,2,1]

[2,3,4,5,6,1]               [3,4,5,6,2,1]             [4,5,6,3,2,1]            [5,6,4,3,2,1]              [6,5,4,3,2,1]

我们可以先定义一个数组n[]将数据赋予n[]; 通过数组运行循环下标来控制数据比较,既n[0]<n[1];这样我们就得到了判定条件,既

if(n[0]<n[1])

{
  int m = 0;        
  m=n[0];
  n[0] = n[1];
  n[1] = m;                      
 }

在图中红字可以看出 我们通过两位数比较n[0]<n[1]→n[1]<n[2]→n[2]<n[3]→n[3]<n[4]→n[4]<n[5]既n[i]<n[i+1] 循环。

这里我们输入了6个数比较了5次,那么长度就是(n.length-1)。

得到方法:

static void Main(string[] args)
        {
            int[] n=new int[]{1,2,3,4,5,6};               //定义一个数组
            for (int i = 0; i < n.Length-1; i++)                   //一共比较了几轮
            {
                for (int j = 0; j < n.Length - 1; j++)            //一轮中比较几次
                {
                    if (n[j]<n[j+1])
                    {
                        int m = 0;
                        m=n[j];
                        n[j] = n[j + 1];
                        n[j+ 1] = m;                      
                    }
                }  
            }
            //for (int k = 0; k < n.Length; k++)
            //{
            //    Console.WriteLine(n[k]);
            //}
            foreach (int item in n)                       //用for和foreach都行,经过上面的步骤我们已经把n重新排序好了,输出n。
            Console.WriteLine(item);
            Console.ReadLine();
                }

还一种快速方法供大家参考:

static void Main(string[] args)
        {
               int[] n=new int[]{1,2,3,4,5,6};
            for (int i = 0; i < n.Length-1; i++)
            {
                for (int j = i; j < n.Length - 1; j++)
                {
                    if (n[j]<n[j+1])
                    {
                        int m = 0;
                        m=n[i];
                        n[i] = n[j + 1];
                        n[j+ 1] = m;            
                    }
                }      
            }           
            foreach (int item in n)
                Console.WriteLine(item);
            Console.ReadLine();

for的冒泡排序练习题的更多相关文章

  1. C语言折半查找法练习题冒泡排序

    C语言折半查找法练习题 折半查找法: 折半查找法是效率较高的一种查找方法.假设有已经按照从小到大的顺序排列好的五个整数num[0]~num[4],要查找的数是key,其基本思想是: 设查找数据的范围下 ...

  2. Python3练习题 006 冒泡排序

    import random a = [random.randint(1,100) for i in range(10)]def bu(target): length = len(target) whi ...

  3. VBS练习题

    练习题: 1.输入3个数,输出其中最大的那个值. Option Explicit Dim intA,intB,intC intA=CInt(InputBox("请输入a:")) i ...

  4. js部分---数组及练习题;

    数据存储--数组: 强类型语言数组 1.同一类型的数据存储的集合,在内存中是连续的 2.定义的时候需要制定长度 弱类型语言数组 1.可以存储任意类型的数据 2.在内存中不连续,不需要制定长度 定义一个 ...

  5. c#部分---一维数组、冒泡排序、foreach的用法

    一维数组:2016-10-14 定义方式:{定义的时候,需要数据类型.长度!} 1.int []aa=new int [5];  表示数组里面有5个字符: 2.int []aa=new int []{ ...

  6. Java数组练习题小结

    //2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在, ...

  7. C#基础——数组(冒泡排序)

    数组 所谓数组,就是相同数据类型的元素按一定的顺序的集合,就是把有限个类型相同的变量用一个名字来命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量 ...

  8. 从零开始学习PYTHON3讲义(八)列表类型跟冒泡排序

    <从零开始PYTHON3>第八讲 ​前面我们见过了不少的小程序,也见过了不少不同类型的变量使用的方法.但目前我们涉及到的,还都是单个的变量和单个的立即数.以变量来说,目前我们见到的,基本都 ...

  9. python3编程练习题

    记录一些基础编程练习题和一些遇见的坑 1)输出0到100的数字,如果数字是3的倍数输出Fizz,5的倍数输出Buzz.同时是3和5的倍数输出FizzBuzz,其他情况则打印原数字 for i in r ...

随机推荐

  1. linux 配置tomcat运行远程监控(JMX)

    在实际使用中,我们经常要监控tomcat的运行性能.需要配置相应的参数提供远程连接来监控tomcat服务器的性能.本文详细介绍如何一步一步的配置tomcat相应参数.允许远程连接监控. 工具/原料 v ...

  2. Spring Data JPA初使用(转载)

    我们都知道Spring是一个非常优秀的JavaEE整合框架,它尽可能的减少我们开发的工作量和难度. 在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样优秀的Spring Data JPA. ...

  3. php处理图片实现

    <?php include("SimpleImage.php");//图片处理类在下面 $url="http://f3.v.veimg.cn/meadincms/1 ...

  4. struts2文件上传和下载

    1. struts系统中的拦截器介绍 过滤器:javaweb中的服务器组件,主要针对的请求和响应进行拦截. 拦截器:主要针对方法的调用,进行拦截器,当使用代理对象调用某个方法时候 对方法的调用进行拦截 ...

  5. [Android Pro] StarUML 版本破解

    参考:http://bbs.chinapyg.com/thread-79022-1-1.html 官网下载地址 : http://staruml.en.softonic.com 各平台版本均适用,本文 ...

  6. google关于ssh key的解释(转)转的google的wiki的

    SSH keys (简体中文)     SSH 密钥对可以让您方便的登录到 SSH 服务器,而无需输入密码.由于您无需发送您的密码到网络中,SSH 密钥对被认为是更加安全的方式.再加上使用密码短语 ( ...

  7. 模拟赛1102d1

    炮(cannon)[题目描述]众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子". 炮跟炮显然不能在一起打起来,于是rly一天借来了 ...

  8. 剑指Offer——网易笔试之解救小易

    知识要点 首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走AC和 CB才能到达,由于街道很规则,ACB就像一个直角3 ...

  9. volatile和const

    volatile可理解为“编译器警告指示字” volatile用于告诉编译器必须每次去内存中取变量值 volatile主要修饰可能被多个线程访问的变量 volatile也可以修饰可能被未知因数更改的变 ...

  10. 关于内存管理/set/get方法

    MRC状态下 1 任何继承NSObject的对象,存放于堆控件中,都需要手动管理内存 .2 基本数据类型放到栈中,对象放到堆空间中,内存是有系统管理的.(int\float\enum\struct) ...