惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
G
Google Developers Blog
B
Blog
Engineering at Meta
Engineering at Meta
阮一峰的网络日志
阮一峰的网络日志
The Register - Security
The Register - Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
The Cloudflare Blog
The Hacker News
The Hacker News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
雷峰网
雷峰网
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
A
About on SuperTechFans
量子位
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
H
Help Net Security
Help Net Security
Help Net Security
P
Palo Alto Networks Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Troy Hunt's Blog
W
WeLiveSecurity
V
Vulnerabilities – Threatpost
T
The Exploit Database - CXSecurity.com
Know Your Adversary
Know Your Adversary
Apple Machine Learning Research
Apple Machine Learning Research
Scott Helme
Scott Helme
N
News | PayPal Newsroom
AWS News Blog
AWS News Blog
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
腾讯CDC
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
TaoSecurity Blog
TaoSecurity Blog
GbyAI
GbyAI
Y
Y Combinator Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker

博客园 - 三文鱼

叶问 弧线枪法 我是传奇 赤壁~之战 也说动物园展示蟒蛇吃活鸡 终于知道g9是谁了 人生的蝴蝶效应 杭州之行 广州车展 西安之行 变形金刚真是火 C#写的几个基本的排序算法(二) C#写的几个基本的排序算法(一) 数据库惊现"NULL" 换了个计数器 应该了解的垃圾收集机制(二) 应该了解的垃圾收集机制(一) 中国队输了 别把代码写成“密码”
C#写的几个基本的排序算法(三)
三文鱼 · 2007-07-11 · via 博客园 - 三文鱼

 1class MergeSortSample
 2    {
 3        public void MergeSort(int[] values, int begin, int end)
 4        {
 5            if (begin < end)
 6            {
 7                int mid = (begin + end) / 2;
 8                MergeSort(values, begin, mid);
 9                MergeSort(values, mid + 1, end);
10                Merge(values, begin, mid, end);                
11            }

12        }

13
14        public void Merge(int[] values, int begin, int mid, int end)
15        {
16            int length1 = mid - begin + 1;
17            int length2 = end - mid;
18            int[] values1 = new int[length1 + 1];
19            int[] values2 = new int[length2 + 1];
20            for (int i = 0; i < length1; i++)
21            {
22                values1[i] = values[i + begin];
23            }

24            for (int i = 0; i < length2; i++)
25            {
26                values2[i] = values[i + mid + 1];
27            }

28
29            values1[length1] = int.MaxValue;
30            values2[length2] = int.MaxValue;
31                        
32            for (int i = 0, j = 0, k = begin; k <= end; ++k)
33            {
34                if (values1[i] <= values2[j])
35                {
36                    values[k] = values1[i];
37                    ++i;
38                }

39                else
40                {
41                    values[k] = values2[j];
42                    ++j;
43                }

44            }

45        }

46
47        static void Main()
48        {
49            int[] values = 4375890126 };
50
51            MergeSortSample mergeSort = new MergeSortSample();
52            mergeSort.MergeSort(values, 0, values.Length - 1);
53
54            foreach (int v in values)
55            {
56                Console.Write(v + " ");
57            }

58            Console.ReadKey();
59        }

60    }