.net版 快速排序算法实现

查了下网上很多朋友写的.net版快速排序算法,总觉得写得比较复杂,所以决定自己写个简单点的
要排序的数组为:

int[] sortArray = new int[] { 45,36,54,2,4,65,22,3,45,65,4,3,88,99,100,14,133,22};
然后写个递归的快速排序算法方法:
private void Recursion(int[] sortArray, int left, int right){

        
if (left >= right) return;

        
int il = left;
        
int jr = right;

        
int temp = sortArray[left];//设置数组的第一个元素为比较基数

        
while (left != right) {

            
//从右向左找
            while(right > left){

                
if (temp > sortArray[right]){

                    
int m = sortArray[left];
                    sortArray[left] 
= sortArray[right];
                    sortArray[right] 
= m;
                    
break;
                }
                right
--;
            }
            
//从左向右找
            while (right > left){

                
if (temp <= sortArray[left]){

                    
int m = sortArray[left];
                    sortArray[left] 
= sortArray[right];
                    sortArray[right] 
= m;
                    
break;
                }
                left
++;
            }
        }

        Recursion(sortArray, il, left 
- 1);
        Recursion(sortArray, left 
+ 1, jr);
    }
很简单,对吧,然后输出排序好的数组就可以了:
        Recursion(sortArray, 0, sortArray.Length - 1);

        StringBuilder bui 
= new StringBuilder();
        
for (int i = 0; i < sortArray.Length; i++) {

            bui.Append(sortArray[i]).Append(
"  ");
        }
        
return bui.ToString();
完成!
请大家批评指正,谢谢
原文地址:https://www.cnblogs.com/lizheng114/p/1387210.html