文章类型: .NET
关键词: C#,冒泡排序
内容摘要: 冒泡排序的基本原理和代码

C#基本语法:冒泡排序

2015/7/17 10:53:28    来源:Root    阅读:

一、原理:

 

搜索整个数组,比较相邻元素,如果两者的相对大小次序不符合由小到大,就交换它们,结果是最大值移动到最后一个位置上,也是在最终完成排序数组中合适的位置。然后再次搜索数组,将第二大的值移动到倒数第二个位置上,重复该过程,直到将所有元素移动到正确的位置。

在排序过程中总是小数往前放,大数往后放,像是气泡往上升,所以称作冒泡排序。

 

例:现在有5个数字:23,90,9,25,16

  首先比较239023小于2590则不交换它们的位置。

  再比较909,90大于9,则交换它们的位置。

  依次类推,第一轮结束后,顺序为:23,9,25,16,90

  第二轮开始继续从最底比较,结束后顺序应为:9,23,16,25,90

  第三轮、第四轮以此类推,结束后的顺序为:9,16,23,25,90

 

  根据例我们可以发现:

第一轮比较时,首先2390比较,然后909比较,然后9025比较,之后9016比较,一轮下来一共比较了4次。

第二轮比较时,239比较,然后2325比较,然后2516比较,因为90已经是最大的数了,所以不参与比较,一共比较了3次。

第三轮比较时,923比较,然后2316比较,一共比较了两次。

第四轮比较时,916比较,只比较一次。

则设外层循环变量i=0,四次循环i0变成3,则i<4,也就是i<数组长度-1

而内层循环次数从4变到1,则内层循环变量j也就是j<4-I,也就是数组长度-1-i

 

二、冒泡排序速记口诀(升序):

N个数字来排队,两两相比小靠前。

外层循环N-1,内层循环N-1-i

如果要降序排序,只要把程序中的比较的大于号变成小于号就行了。


三、代码:

    int[] a=new int[5]{23,90,9,25,16};            

     //排序数组     

     int i,j;                                    

     //循环变量     

     int temp;                               

     //临时变量用于交换   

     for(i=0;i<a.Length-1;i++)   

     {     

       //将最大的元素交换到最后  

       for(j=0;j<a.Length-1-I;j++)    

       {      

        if(a[j]>a[j+1])    

        {        

          //交换元素    

          temp=a[j];       

          a[j]=a[j+1];     

          a[j+1]=temp;      

         }      

       }    

     }    

     //排序后输出 

     Console.WriteLine(“排序后的数字为:”);   

     for(int k=0;k<a.Length;k++)   

     {      

       Console.Write(“{0}\t”,a[k]);  

     }

 


↑ 上一篇文章:C#基本语法:值类型与引用类型 关键词:C#,值类型,引用类 发布日期:2015/7/17 10:50:49
↓ 下一篇文章:C#基本语法:数组与循环 关键词:C#,语法,数组,循环,二维数组,二重循环,对象数组 发布日期:2015/7/17 11:00:07
相关文章:
C#中DataGridView的多表数据展示的方法总结 关键词:C#,DataGridView,多表数据,展示,方法,总结 发布日期:2015-07-18 12:01
C#的WinForm开发中AutoComplete 输入提示、自动补全 关键词:C#,CSharp,WinForm,TextBox,AutoComplete,输入提示,自动补全.. 发布日期:2016-01-21 21:08
Java、C#编程逻辑训练题(见上一篇)的参考答案 关键词:C#,C,Sharp,Java,java,编程逻辑,训练题,if,switch,while,fo.. 发布日期:2015-07-22 16:34
相关目录:.NET
我要评论
正在加载评论信息......