博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 实现冒泡算法--不一定效率,但很容易理解
阅读量:5099 次
发布时间:2019-06-13

本文共 979 字,大约阅读时间需要 3 分钟。

说明下冒泡:

 需要排序的数组 int[] array = [12, 123, 34, 12, 43, 6, 3, 23, 1234, 5 ];

 说明下冒泡的原理:我只贴了两张图,说明下

 一、第一遍:循环由下到上的比较,值小的上移(不小的保持不动),继续循环,直到把最小的值移至最上面。循环比较数组的所有的10个数值;

 二、第二遍:原理同上一步,唯一不同的是循环比较的个数,因为上一次的循环已经把最小的移至最上面了,所以这次的循环比较中不需要比较最上的的值了,也就是array个数减一,也就是这次只要比较9个数值就行了;

 三、以下同理,最后完成排序!

 

 

代码示例:

 

static 
void Main(
string[] args)
        {
            
int[] list = { 
12
123
34
12
43
6
3
23
1234
5 };
            
int count = 
0;
            count = Sort(list);
            Console.WriteLine(count);
            Console.WriteLine(
"
**********************
");
            
for (
int i = 
0; i < list.Length; i++)
            {
                Console.WriteLine(list[i]);
            }
            Console.ReadKey();
        }
private 
static 
int Sort(
int[] a)
        {
            
int count = 
0;
            
for (
int i = a.Length - 
1; i > 
0; i--)
//
控制第次比较的个数
            {
                
for (
int j = 
0; j < i; j++)
//
                {
                    
//
用于记录执行次数
                    count++;
                    
if (a[j] < a[j + 
1])
                    {
                        
//
这里使用了不加临时变量时进行数值交换的方法
                        
//
当然加个临时变量也是一样的
                        a[j] = a[j] + a[j + 
1];
                        a[j + 
1] = a[j] - a[j + 
1];
                        a[j] = a[j] - a[j + 
1];
                    }
                }
            }
            
return count;
        }

希望有人能帖个,高效率的冒泡!

 

转载于:https://www.cnblogs.com/yijie/archive/2011/10/28/2227512.html

你可能感兴趣的文章
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
python3 生成器与迭代器
查看>>
git .gitignore 文件不起作用
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
cer证书签名验证
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
QML学习笔记之一
查看>>
App右上角数字
查看>>
小算法
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>