C# 排序算法的实现

一、冒泡排序(bubble)

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();
   }

}

}


二、选择排序(selection)

 

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();
   }

}

}


 

三、插入排序(insertionsorter)

 

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();
   }

}

}


四、希尔排序(shellsorter)

 

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();
   }

}

}
  

 

 

 

你可能感兴趣的:(C# 排序算法的实现)