快速排序(QuickSort)用C# 实现的小例子

简介:
     class  QuickSort
    
{
        
public void Sort(int[] data, int start, int end)
        
{
            
if (start >= end) return;
            
if (start + 1 == end)
            
{
                
if (data[start] > data[end])
                    Swap(data, start, end);

                
return;
            }


            
int indexL = start + 1, indexR = end;
            
while (indexL < indexR)
            
{
                
// Get from left
                while (indexL <= end && data[start] >= data[indexL])
                    indexL
++;

                
// Get from right
                while (indexR > start && data[start] < data[indexR])
                    indexR
--;

                
if (indexL < indexR)
                
{
                    Swap(data, indexR, indexL);
                }

            }


            
if(indexL-1 !=start)
                Swap(data, start, indexL 
- 1);


            Sort(data, start, indexL 
- 2);
            Sort(data, indexL, end);
        }


        
private void Swap(int[] data, int x, int y)
        
{
            data[x] 
= data[x] + data[y];
            data[y] 
= data[x] - data[y];
            data[x] 
= data[x] - data[y];
        }

    }

本文转自Jack Niu博客园博客,原文链接:http://www.cnblogs.com/skywind/archive/2008/03/31/1131612.html,如需转载请自行联系原作者
相关文章
|
搜索推荐 C#
C#快速排序算法
C#快速排序算法
|
算法 C#
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-快速排序)
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-快速排序)
102 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(交换排序-快速排序)
|
人工智能 C# 算法
C# 快速排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sort { class QuickSorter { private static int[] myArray; private static int a
806 0
|
C# 索引
快速排序法的C#实现
今天心血来潮,想到自己数据结构学的不好,于是查了下快速排序法的原理,实现了一个玩玩。算是对自身知识的补充。 View Code public class Sort {/// /// 快速排序法(ASC)/// /// /// /// public stati...
760 0
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
169 3
|
5月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
181 3
|
10天前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
24 2