New Quicksort Algorithm
This commit is contained in:
		
							
								
								
									
										12
									
								
								QuickSort/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								QuickSort/Program.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
namespace QuickSort
 | 
			
		||||
{
 | 
			
		||||
    class Program
 | 
			
		||||
    {
 | 
			
		||||
        static void Main(string[] args)
 | 
			
		||||
        {
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										65
									
								
								QuickSort/QuickSort.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								QuickSort/QuickSort.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace QuickSort
 | 
			
		||||
{
 | 
			
		||||
    public class QuickSort
 | 
			
		||||
    {
 | 
			
		||||
        public int[] List { get; set; }
 | 
			
		||||
        
 | 
			
		||||
        public QuickSort(int[] List){
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public int[] Sort(){
 | 
			
		||||
 | 
			
		||||
            Pointer pivot = new Pointer(0, List);
 | 
			
		||||
 | 
			
		||||
            Pointer left = new Pointer(1, List);
 | 
			
		||||
 | 
			
		||||
            Pointer right = new Pointer(List.Length-1, List);
 | 
			
		||||
 | 
			
		||||
            while (right.Index >= left.Index)
 | 
			
		||||
            {
 | 
			
		||||
                while (left.Index <= right.Index && left.Value <= pivot.Value)
 | 
			
		||||
                {
 | 
			
		||||
                    left.UpdatePointer(left.Index + 1, List);
 | 
			
		||||
                }
 | 
			
		||||
                while (right.Index >= left.Index & right.Value >= pivot.Value)
 | 
			
		||||
                {
 | 
			
		||||
                    right.UpdatePointer(right.Index - 1, List);
 | 
			
		||||
                }
 | 
			
		||||
                if (right.Index > left.Index)
 | 
			
		||||
                {
 | 
			
		||||
                    //Swap the values of both 
 | 
			
		||||
                    swap();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return new int[1]{1};
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public void swap(){
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class Pointer{
 | 
			
		||||
        public int Index { get; set; }
 | 
			
		||||
        public int Value { get; set; }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        public Pointer(int index, int[] list){
 | 
			
		||||
            this.Index = index;
 | 
			
		||||
            this.Value = list[index];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void UpdatePointer(int index, int[] list){
 | 
			
		||||
            this.Index = index;
 | 
			
		||||
            this.Value = list[index];
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								QuickSort/QuickSort.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								QuickSort/QuickSort.csproj
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk">
 | 
			
		||||
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <OutputType>Exe</OutputType>
 | 
			
		||||
    <TargetFramework>net5.0</TargetFramework>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
 | 
			
		||||
</Project>
 | 
			
		||||
		Reference in New Issue
	
	Block a user