【前言】

C#视频的看到冒泡排序以后,小杨老师讲了一个更简单的排序方法,这个方法就是Array.Sort()函数,利用这个函数可直接对数组中的数字进行排序,比冒泡排序简单得多了,仅仅只需要一行代码,下面是代码和运行结果。

            int[] nums = new int[] { 2, 652, 32, 1, 6, 65 };Array.Sort(nums);//Array.Reverse(nums);//方法,反转for (int i = 0; i < nums.Length; i++){Console.WriteLine(nums[i] + "\t");}Console.ReadKey();

结果为:

若想降序排序,当然可以,只需要加一行代码就可以实现,代码如下:

            Array.Reverse(nums);//方法,反转

这行代码的作用就是反转输出结果,是不是So easy呢。但是,这些在程序的内部是怎样实现的呢?虽然说它只是一种方法,并不需要我们知道具体的操作,但总有一些强迫症的人,不知道结果心里不爽,若正在读这篇博客的你和我一样好奇是怎样实现的就继续往下看吧。

【正文】

这种方法具体是这样实现的?

咳咳……

我也不知道,那就百度吧。好心的网友解释是这样的:Arrays.sort()方法根据传出参数的长度的大小来判断用哪种排序方法,如果数组的长度小于7用冒泡排序,如果数组长度大于7,将数组分为两部分,前半部分和后半部分分别进行冒泡排序,最后再执行一次总的排序。

也就是说Arrays.sort()方法就是相当于给我们写好的一个冒泡排序(长度小于7位),就像小杨老师解释的,大部分的方法差不多都是这样。比如说该吃饭了,自己做饭需要买菜、洗菜、切菜、炒菜,一切都完成后才能顺利的吃到饭,但是若不想做饭该怎么办呢?有什么方法呢?点外卖,手机一点,想吃什么直接就给送过来了,这就是一种方法,一种别人做好的,你直接就可以拿过来用的方法。

在看其他同学博客的过程中意外发现了Array.Sort()的一个严重bug,若我代码如下的时候运行的结果是这样的:

            int[] nums = new int[] {2,6,21,652,65,6,1,12 };Array.Sort(nums);

得到的结果为:1,12,2,21,6,65,652

可以看到并没有完全按照升序排列,这是为什么呢?因为Array.Sory()方法的排序默认按照ASCII字符码进行排序,数字式按照他们的字符串形式排序的。

这就是Array.Sort()方法的排序原理,虽然很简单,但是有了以上例子我觉得Array.Sort()方法在一定情况下并不适用。

[C#]Array.Sort()排序的原理相关推荐

  1. Array.Sort()排序的原理

    Array.Sort()函数,利用这个函数可直接对数组中的数字进行排序,比冒泡排序简单得多了,仅仅只需要一行代码,下面是代码和运行结果. int[] nums = new int[] { 2, 652 ...

  2. js数组的sort排序的原理和应用

    1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串( ...

  3. Array.sort排序

    Sorting an Array 1. 数字排序  int[] intArray = new int[] { 4, 1, 3, -23 }; Arrays.sort(intArray);     输出 ...

  4. php 多维数组 array sort 排序 :array_multisort

    1.参考链接: php简单实现多维数组排序的方法 参考二: 这个链接很好,可以直接看这个:PHP array_multisort-对多个数组或多维数组进行排序 2.案例一: 1 //13: 最佳: 2 ...

  5. C#中Array.Sort()方法分析

    Array.Sort()是在我们日常工作中非常常用的函数,不需要自己编写排序算法就可以方便的对数组进行排序. 利用Array.Sort()排序具有以下特点: 排序是不稳定的 采用内省排序(intros ...

  6. sort排序方法的实现原理

    sort 排序方法的实现原理   我们比较常用的是直接调用 JS的 sort方法,围绕原生 JS方法,并结合 V8排序的代码一起来分析,以便碰到类似的 JS排序问题时能够轻松应对.   在开始前请思考 ...

  7. [ActionScript 3.0] 对数组中的元素进行排序Array.sort()的方法

    对数组中的元素进行排序. 此方法按 Unicode 值排序. (ASCII 是 Unicode 的一个子集.) 默认情况下,Array.sort()按以下方式进行排序: 1. 排序区分大小写(Z优先于 ...

  8. js数组sort排序原理

    大家都知道javascript的数组有sort排序方法,可以实现升序与降序,现在我们来学习一下sort方法排序的原理冒泡排序. 冒泡排序:拿数组的当前项和后一项比较,如果当前项大于后一项,两者交换位置 ...

  9. 更高效地刷OJ——Java中常用的排序方法,Array.sort(),Arrays.parallelSort(), Collections.sort()

    对于几大传统的排序算法我在前面博客中已经介绍过了,如果有想要了解的同学可以去看这篇博客八大排序:冒泡排序,选择排序,插入排序,堆排序,希尔排序,归并排序,计数排序但是我们在刷题过程中如果题目中没有对排 ...

最新文章

  1. R使用深度学习LSTM构建时间序列预测模型
  2. 用于Spring应用程序的Gradle原型
  3. 字符串匹配之KMP算法
  4. 关于CALayer导致的crash问题
  5. [Android6.0] StageFright解码流程小结
  6. 利用arcgis软件画地图
  7. Local-DPP论文阅读笔记
  8. APP开通支付宝支付 转账功能
  9. 人再囧途之泰囧.BD高清1280国语中英双字 附下载地址
  10. 关于monitor模式
  11. POE交换机和普通交换机哪里不同?POE交换机和普通交换机哪个好?
  12. openGL 深度测试与透明度设置
  13. thinkphp 面包屑导航
  14. Windows10系统与Ubuntu系统之间的文件传输工具
  15. Vue中如何引入ElementUI
  16. warning: require(./admin.php),WordPress提示require_once() Failed opening required的解决方法
  17. tp无线路由器设置打印服务器,TP-Link TL-WVR450G V3 无线路由器打印服务器设置指南...
  18. 排队论的计算机模拟,排队论模型(八):Matlab 生成随机数、排队模型的计算机模拟...
  19. 谈什么一生挚爱,回到人海里,我们也会陌生的不像个样子。
  20. 后记——再见南航829

热门文章

  1. 出售二手房如何发布信息
  2. 2022-2028全球与中国社交聆听软件市场现状及未来发展趋势
  3. mongo里面多个条件之间的and,or组合查询
  4. android 倒计时 界面,Android倒计时控件实现
  5. 7月29日 | openGauss与你相约2021数据管理与创新大会
  6. JavaScript-创建数组的两种方法,数组的遍历,lenght获取数组的长度,在数组末尾追加元素
  7. c 语言中嵌套循环,C 嵌套循环 | 菜鸟教程
  8. 中e管家如何增强理财风险防范意识
  9. Shizuku连接电脑adb
  10. linux下sed编辑器的使用详解