如今的网站规划中算法不算多,但是想过面试这关,必须要掌握一些主流的算法,朋友上次面试就遇到了冒泡问题,在此顺带一提:
冒泡排序:
using System;
namespace BubbleSorter
{ public class BubbleSorter
{ public void Sort(int [] list)
{ int i,j,temp;
bool done=false;
j=1;
while((j<list.Length)&&(!done))
{ done=true;
for(i=0;i<list.Length-j;i++)
{
if(list[i]>list[i+1])
{
done=false;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
} }
j++; }
} }
public class MainClass
{ public static void Main()
{
int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
BubbleSorter sh=new BubbleSorter();
sh.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
} }
}
namespace BubbleSorter
{ public class BubbleSorter
{ public void Sort(int [] list)
{ int i,j,temp;
bool done=false;
j=1;
while((j<list.Length)&&(!done))
{ done=true;
for(i=0;i<list.Length-j;i++)
{
if(list[i]>list[i+1])
{
done=false;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
} }
j++; }
} }
public class MainClass
{ public static void Main()
{
int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
BubbleSorter sh=new BubbleSorter();
sh.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
} }
}
选择排序 :
using System;
namespace SelectionSorter
{ public class SelectionSorter
{ private int min;
public void Sort(int [] list)
{ for(int i=0;i<list.Length-1;i++)
{ min=i;
for(int j=i+1;j<list.Length;j++)
{ if(list[j]<list[min])
min=j;
}
int t=list[min];
list[min]=list[i];
list[i]=t;
} }
}
public class MainClass
{ public static void Main()
{
int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
SelectionSorter ss=new SelectionSorter();
ss.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
} }
}
namespace SelectionSorter
{ public class SelectionSorter
{ private int min;
public void Sort(int [] list)
{ for(int i=0;i<list.Length-1;i++)
{ min=i;
for(int j=i+1;j<list.Length;j++)
{ if(list[j]<list[min])
min=j;
}
int t=list[min];
list[min]=list[i];
list[i]=t;
} }
}
public class MainClass
{ public static void Main()
{
int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
SelectionSorter ss=new SelectionSorter();
ss.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
} }
}
插入排序:
using
System;
namespace InsertionSorter
{ public class InsertionSorter
{ public void Sort( int [] list)
{ for ( int i = 1 ;i<list.Length;i ++ )
{ int t = list[i];
int j = i;
while ((j> 0 ) && (list[j - 1 ]>t))
{ list[j] = list[j - 1 ];
-- j;
}
list[j] = t; }
}
}
public class MainClass
{ public static void Main()
{
int [] iArrary = new int []{ 1 , 13 , 3 , 6 , 10 , 55 , 98 , 2 , 87 , 12 , 34 , 75 , 33 , 47 };
InsertionSorter ii = new InsertionSorter();
ii.Sort(iArrary);
for ( int m = 0 ;m<iArrary.Length;m ++ )
Console.Write( " {0} " ,iArrary[m]);
Console.WriteLine();
} }
}
namespace InsertionSorter
{ public class InsertionSorter
{ public void Sort( int [] list)
{ for ( int i = 1 ;i<list.Length;i ++ )
{ int t = list[i];
int j = i;
while ((j> 0 ) && (list[j - 1 ]>t))
{ list[j] = list[j - 1 ];
-- j;
}
list[j] = t; }
}
}
public class MainClass
{ public static void Main()
{
int [] iArrary = new int []{ 1 , 13 , 3 , 6 , 10 , 55 , 98 , 2 , 87 , 12 , 34 , 75 , 33 , 47 };
InsertionSorter ii = new InsertionSorter();
ii.Sort(iArrary);
for ( int m = 0 ;m<iArrary.Length;m ++ )
Console.Write( " {0} " ,iArrary[m]);
Console.WriteLine();
} }
}
using
System;
namespace ShellSorter
{
public class ShellSorter
{
public void Sort( int [] list)
{
int inc;
for (inc = 1 ;inc< = list.Length / 9 ;inc = 3 * inc + 1 );
for (;inc> 0 ;inc /= 3 )
{
for ( int i = inc + 1 ;i< = list.Length;i += inc)
{
int t = list[i - 1 ];
int j = i;
while ((j>inc) && (list[j - inc - 1 ]>t))
{
list[j - 1 ] = list[j - inc - 1 ];
j -= inc;
}
list[j - 1 ] = t;
} }
} }
public class MainClass
{ public static void Main()
{
int [] iArrary = new int []{ 1 , 5 , 13 , 6 , 10 , 55 , 99 , 2 , 87 , 12 , 34 , 75 , 33 , 47 };
ShellSorter sh = new ShellSorter();
sh.Sort(iArrary);
for ( int m = 0 ;m<iArrary.Length;m ++ )
Console.Write( " {0} " ,iArrary[m]);
Console.WriteLine();
} }
}
namespace ShellSorter
{
public class ShellSorter
{
public void Sort( int [] list)
{
int inc;
for (inc = 1 ;inc< = list.Length / 9 ;inc = 3 * inc + 1 );
for (;inc> 0 ;inc /= 3 )
{
for ( int i = inc + 1 ;i< = list.Length;i += inc)
{
int t = list[i - 1 ];
int j = i;
while ((j>inc) && (list[j - inc - 1 ]>t))
{
list[j - 1 ] = list[j - inc - 1 ];
j -= inc;
}
list[j - 1 ] = t;
} }
} }
public class MainClass
{ public static void Main()
{
int [] iArrary = new int []{ 1 , 5 , 13 , 6 , 10 , 55 , 99 , 2 , 87 , 12 , 34 , 75 , 33 , 47 };
ShellSorter sh = new ShellSorter();
sh.Sort(iArrary);
for ( int m = 0 ;m<iArrary.Length;m ++ )
Console.Write( " {0} " ,iArrary[m]);
Console.WriteLine();
} }
}