C#代码实现-冒泡排序
2024-10-08 08:06:30
冒泡排序原理:(升序)通过当前位置数和后一个位置数进行比较 如果当前数比后一个数大 则交换位置, 完成后 比较基数的位置变成下一个数。直到数组末尾,当程序运行完第一遍 最大的数已经排序到最后一个位置了。次数可以减少循环数不用管最后一个数
降序排序同理 不过是把比较方式变成判断当前数是否小于下一个数 如果小于则交换
下面直接上代码
双重循环方式:
using System;
using System.Collections.Generic; namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
//创建一个乱序数组
List<int> ints = new List<int> { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , }; //获取数组长度
int count = ints.Count; //外圈循环 数组有多少个数就循环多少次 每完成一次内部循环减少一次外部循环(最后一个数以经是最大 不用参与比较了)
for (int i = count; i > ; i--)
{
//内部循环 比较当前位置数和下一个位置的数大小
for (int j = ; j < i; j++)
{
//判断是否到数组尾
if (j + == i) continue;
//判断当前数是否比下一个数大
if (ints[j] > ints[j + ])
{
//把当前数替换到临时变量
var t = ints[j];
//把下一个数替换到当前位置
ints[j] = ints[j + ];
//把临时变量替换到下一个数的位置
ints[j + ] = t;
}
}
//减少外圈循环
count--;
}
Console.WriteLine(string.Join(",", ints)/*string.Join("分隔符",对象数组) 用于把数组元素分割成字符串*/ );
Console.ReadKey();
}
}
}
while实现方式:
using System;
using System.Collections.Generic; namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
//创建一个乱序数组
List<int> ints = new List<int> { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , }; //获取数组长度
int count = ints.Count; //外圈循环 数组有多少个数就循环多少次 每完成一次内部循环减少一次外部循环(最后一个数以经是最大 不用参与比较了)
while (count > )
{
//内部循环 比较当前位置数和下一个位置的数大小
for (int j = ; j < count; j++)
{
//判断是否到数组尾
if (j + == count) continue;
//判断当前数是否比下一个数大
if (ints[j] > ints[j + ])
{
//把当前数替换到临时变量
var t = ints[j];
//把下一个数替换到当前位置
ints[j] = ints[j + ];
//把临时变量替换到下一个数的位置
ints[j + ] = t;
}
}
//减少外圈循环
count--;
}
Console.WriteLine(string.Join(",", ints)/*string.Join("分隔符",对象数组) 用于把数组元素分割成字符串*/ );
Console.ReadKey();
}
}
}
纯属个人理解,如果偏差请各位大佬指正~~~~
最新文章
- uwp如何建立任何形状的头像,如圆形,方形,六边形等
- Unity手游之路<;二>;Java版服务端使用protostuff简化protobuf开发
- 再过几个月Apple Watch就要正式发布了
- Python isdigit()方法
- u-boot移植总结(二)LED点灯调试 和 u-boot加载地址
- Http Url Get请求方式需要对中文参数进行编码
- 客户端无法tcp连接上本地虚拟机的问题(最后是linux防火墙问题)
- C++中的左值和右值
- perl 正则表达式之匹配
- 利用jquery.chained.remote实现多级级联
- Netty(RPC高性能之道)原理剖析
- SpringJPA主键生成采用自定义ID,自定义ID采用年月日时间格式
- wordpress使用阿里云邮件推送服务实现发送邮件
- H5 19-序选择器下
- [CQOI2016]K远点对
- Socket网络编程--聊天程序(1)
- Codeforces Round #481 (Div. 3) D. Almost Arithmetic Progression
- XDocument 使用
- php的无刷新实现方法
- PyCharm中Python代码提示:Shadows name from outer scope