冒泡排序原理:(升序)通过当前位置数和后一个位置数进行比较 如果当前数比后一个数大 则交换位置, 完成后 比较基数的位置变成下一个数。直到数组末尾,当程序运行完第一遍 最大的数已经排序到最后一个位置了。次数可以减少循环数不用管最后一个数

降序排序同理 不过是把比较方式变成判断当前数是否小于下一个数 如果小于则交换

下面直接上代码

双重循环方式:

 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();
}
}
}

纯属个人理解,如果偏差请各位大佬指正~~~~

C#代码实现-冒泡排序的更多相关文章

  1. 数组排序代码,冒泡排序&快速排序&选择排序

    冒泡排序: for(var i=0;i<arr.length-1;i++){ for(var j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1 ...

  2. [C][代码实例]冒泡排序

    #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h& ...

  3. 2用java代码实现冒泡排序算法(转载)

    import java.util.Scanner; public class Maopao { public static void main(String[] args) { System.out. ...

  4. 简单的Java逻辑小代码(打擂台,冒泡排序,水仙花数,回文数,递归)

    1.打擂台 简单的小代码,打擂台.纪念下过去,祝福下新人. public static void main(String[] args){ int[] ld = {1,4,2,10,8,9,5}; i ...

  5. Java常见排序算法之冒泡排序

    在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...

  6. JS 冒泡排序从学到优化

    目的:理解算法 深化算法 冒泡排序: 直接上动图好于文字 一个冒泡实例 45,67,23,88,21,6,99// 第一轮 6次// 45 67 23 88 21 6 99// 45 23 67 88 ...

  7. Python版冒泡排序算法

    0 为什么写本文 一方面对经典排序算法冒泡排序进行复习,另一方面通过实际应用来检验python基础知识的掌握情况,包括range函数.len函数.for循环.if语句.函数定义与调用.列表的排序等知识 ...

  8. 排序算法--冒泡排序(Bubble Sort)_C#程序实现

    排序算法--冒泡排序(Bubble Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困 ...

  9. 《汇编语言 基于x86处理器》第九章字符串与数组部分的代码

    ▶ 书中第九章的程序,主要讲了字符串相关的输入.输出,以及冒泡排序.二分搜索 ● 代码,Irvine32 中的字符串库函数代码范例 INCLUDE Irvine32.inc .data str1 BY ...

随机推荐

  1. jenkins 集成jmeter-简单篇

    测试用例上传至gitlab后,使用jenkins集成gitlab,并执行压测命令 执行完成后,可在jenkins中查看压测报告不同的项目创建最好创建不同的project) [集成]安装&配置& ...

  2. HDS协议介绍

    一.什么是HTTP Dynamic Streaming 使用传统的HTTP协议进行在线播放叫做“渐进下载”,所有的视频内容从头到尾必须从服务器传输到客户端,用户只能在传输完的视频长度中选择播放点,而不 ...

  3. PTA笔记 堆栈模拟队列+求前缀表达式的值

    基础实验 3-2.5 堆栈模拟队列 (25 分) 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Sta ...

  4. pku-3321 Apple Tree(dfs序+树状数组)

    Description There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow ...

  5. 异常处理 | manual close is not allowed over a Spring managed SqlSession

    背景: 今天启动一个老项目,控制台打印出以下异常,大概是说在Spring托管的SqlSession上不允许手动关闭: java.lang.UnsupportedOperationException: ...

  6. .net core3.1 webapi + element-ui upload组件实现文件上传

    首先,先看我个人的的项目结构. 这个webapi项目是专门用来做图片上传,其中分为两个控制器:单图片上传和多图片上传.而我接下来主要讲的还是单文件上传,对于多文件的上传,我暂且尚未研究成功. 其中pi ...

  7. <背包>solution-CF118D_Caesar's Legions

    Caesar's Legions Gaius Julius Caesar, a famous general, loved to line up his soldiers. Overall the a ...

  8. MD5加密解密以及设置salt(盐值)

    MD5算法 package com.oracle.jsp.util; import java.security.MessageDigest; import java.security.NoSuchAl ...

  9. SpringBoot学习(2) - 自定义starter

    自己开发一个spring boot starter的步骤1.新建一个项目(全部都基于maven),比如新建一个spring-boot-starter-redis的maven项目 pom.xml: &l ...

  10. Ajax等待返回结果时,弹出一个友好的等待提示

    巧用Ajax的beforeSend 提高用户体验 jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作. 具体可参考j ...