C# 入门算法“冒泡排序“ 升序 降序 最大值 最小值 平均值

简介: C# 入门算法“冒泡排序“ 升序 降序 最大值 最小值 平均值

效果图:

冒泡排序:

冒泡排序 是一种 排序 算法 就是把 数字 小的和 数字 大的进行位置的调换 部分的公司招聘 也拿来当做 面试题 …

为什么叫冒泡排序?

冒泡排序就是 和水里面产生的气泡一样从小到大的慢慢的升起 所以就叫冒泡排序

完整代码:

排序

int[] arr = {12,18,4,6,80,10,14,12,66,19};
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j=0;j<arr.Length-1;j++)
                {
                  //大于号就是 大 到 小
                    if (arr[i] < arr[j])
                    {
                        int number = arr[i];
                        arr[i] = arr[j];
                        arr[j] = number;
                    }
                }                  
            }
            foreach (int look in arr)
            {
                Console.Write(look+" ");
            }
            Console.ReadKey();

定义进行排序的数组:

升序: 小的数字到大的数字

降序: 大的 到 小的

int[] arr = {12,18,4,6,80,10,14,12,66,19};

可以看见现在的顺序是非常的凌乱的

使用循环体进行换位置:

for (int i = 0; i < arr.Length; i++)
            {
                for (int j=0;j<arr.Length-1;j++)
                {
                    if (arr[i] < arr[j])
                    {
                        int number = arr[i];
                        arr[i] = arr[j];
                        arr[j] = number;
                    }
                }                  
            }

因为要进行 两个 元素的 对比 所以需要使用 两个循环体 进行 元素之间的对比

第一个循环跑一次 而内循环就需要跑 10次(根据元素的个数决定)

if (arr[i] < arr[j])
   {
int number = arr[i];
arr[i] = arr[j];
 arr[j] = number;

如果[i]号元素小于[j]号 两个元素之间就进行换位置 其中"number"是中间变量 存储[i]值

当然如果你想通过 不使用第三方 变量 进行交换 也可以这样

if (arr[i] < arr[j])
 {
 arr[i] = arr[i]+arr[j];
 arr[j] = arr[i]-arr[j];
 arr[i] = arr[i] - arr[j];
 }

额外知识:

不使用第三方 变量 进行 两个 变量的交换

int a =10;
int  b =20;
 a =a+b;
 b =a-b;
 a=a-b;

这样也可以达到一模一样的效果 原理还是那样 只是变的复杂了一点

但是不建议这里写 因为…简单的都变复杂化了

假设这是第一次循环:

i的每一个元素 j 都会一个个对比

上面演示的是 升序

降序:

//变成大于号
if (arr[i] > arr[j])
 {
int number = arr[i];
 arr[i] = arr[j];
  arr[j] = number;
  }

变动一个符号即可


当然如果你是初学者,看不懂 双重 循环体 也可以使用Arrar的静态方法

进行

int[] arr = {12,18,4,6,80,10,14,12,66,19};
 Array.Sort(arr);
 //一建对数组 进行升序的排序 

效果一模一样

这个静态方法 提供了 升序的排序 但他没有提供 降序的方法

不过可以用他的另外一个方法 进行数组反转的 来达到一样的效果

int[] arr = {12,18,4,6,80,10,14,12,66,19};
Array.Sort(arr);
 //升序排序
 Array.Reverse(arr);
 //数祖反转达到 降序效果


数组最小值:

求一个数组里面的 最小 一位数

比较简单

int[] arr = {-12,18,4,26,100,10,14,12,66,-19};
            int max = 0;
            for (int i = 0; i < arr.Length; i++)
            {    //大于号就是 最大值
                if (arr[i] <max)
                {
                    max = arr[i];
                    }
            }
            Console.WriteLine(max);
            Console.ReadKey();


平均值:

整数/个数字

int[] arr = {-12,18,4,26,100,10,14,12,66,-19};
            int max = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                max +=arr[i];
            }
            Console.WriteLine(max/arr.Length-1);
            Console.ReadKey();


练习题:

生成10个随机数 进行 升序排序 算出 最大值 最小值 平均值

答案:

Random r = new Random();
            int[] arr = new int[10];
            int average = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = r.Next(-10,100);
            }      
        for (int i = 0; i < arr.Length; i++)
        {
           average += arr[i];
            for (int j = 0; j < arr.Length - 1; j++)
            {
                if (arr[i] < arr[j])
                {
                    int tmp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = tmp;                    
                }
            }         
        }
        foreach (int number in arr)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine("\n最小值是:" + arr[0]);
         Console.WriteLine("最大值是:" + arr[arr.Length-1]);
        Console.WriteLine("平均值是:" + (average / arr.Length - 1));
            Console.ReadKey();

纯手打,点个赞呗~

相关文章
|
24天前
|
搜索推荐 Java
经典排序算法---冒泡排序
这篇文章详细介绍了冒泡排序算法的基本思想、比较轮数和次数,并提供了Java语言实现冒泡排序的代码示例,展示了如何通过相邻元素的比较和交换来达到排序的目的。
经典排序算法---冒泡排序
|
6天前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
19 0
|
7天前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
13 0
|
1月前
|
机器学习/深度学习 数据挖掘 C#
ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
42 0
|
2月前
|
算法 PHP
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
21 1
|
3月前
|
机器学习/深度学习 算法 搜索推荐
数据结构算法--2 冒泡排序,选择排序,插入排序
**基础排序算法包括冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换,逐步将最大值“冒”到末尾,平均时间复杂度为O(n^2)。选择排序每次找到剩余部分的最小值与未排序部分的第一个元素交换,同样具有O(n^2)的时间复杂度。插入排序则类似玩牌,将新元素插入到已排序部分的正确位置,也是O(n^2)复杂度。这些算法适用于小规模或部分有序的数据。**
|
2月前
|
算法 Python
`scipy.optimize`模块提供了许多用于优化问题的函数和算法。这些算法可以用于找到函数的最小值、最大值、零点等。
`scipy.optimize`模块提供了许多用于优化问题的函数和算法。这些算法可以用于找到函数的最小值、最大值、零点等。
|
3月前
|
存储 C# 索引
技术经验分享:C#入门详解(8)
技术经验分享:C#入门详解(8)
22 0
|
3月前
|
存储 IDE C#
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
C#入门:在JetBrains Rider中创建.Net Framework控制台应用程序,输出“Hello, World!”
201 0
|
3月前
|
搜索推荐 算法 大数据
​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
下一篇
DDNS