A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

廖创发

中级黑马

  • 黑马币:0

  • 帖子:30

  • 精华:0

© 廖创发 中级黑马   /  2012-9-2 10:54  /  1752 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 廖创发 于 2012-9-15 11:22 编辑

为什么直接插入法是最简单的排序方法,我直接声明using  System.Collections;然后调用Array.sort();这个方法不是更简单吗?为什么书上说用Array.sort();是很麻烦的??

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

4 个回复

倒序浏览
声明using  System.Collections后再调用Array.sort快速排序是建立在微软.Net框架上的,而Array的快速排序是建立在机器上的。
回复 使用道具 举报
许庭洲 发表于 2012-9-2 12:58
声明using  System.Collections后再调用Array.sort快速排序是建立在微软.Net框架上的,而Array的快速排序是 ...

额,还不是很明白,可不可以详细点?
回复 使用道具 举报
其实排序方法很多的,冒泡,递归 等等,楼上说的是.net框架下的一种方法,简单的话可以用冒泡:


冒泡排序法:是让一个数组中的数两两比较的方法。最后会得到最大或最小数。
原理:原理是复杂地,如果想了解的话可以向我要视频QQ:643955613 建议只记公式吧:(scores是数组)
for (int i = 0; i < scores.Length - 1; i++)
{
for (int j = 0; j < scores.Length - 1 - i; j++)
{
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{

class Program
{
static void Main(string[] args)
{
int[] scores = { 18, 20, 48, 38, 2, 4, 32, 54, 6, 8, 33 };
for (int i = 0; i < scores.Length - 1; i++)
{
for (int j = 0; j < scores.Length - 1 - i; j++)
{
if (scores[j] > scores[j + 1])//注意“>”表示从小到大,“<”从大到小
{
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine(scores[i]);
}
Console.ReadKey();
}
}
}
回复 使用道具 举报
像排序这样的工作,.NET这样的应用程序框架肯定是会给我们进行一些封装的啦,不然我们写程序不累死了啊,但是为了更深入的理解原理,还是看看数据结构相关的书,学习几个一般的排序算法是很有必要的,不能什么都指望别人嘛。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马