C# 排序算法的实现

转载 2007年09月24日 17:05:00

一、冒泡排序(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#实现各种排序算法

  • 2013-11-30 12:35
  • 96KB
  • 下载

C#实现所有经典排序算法汇总

C#实现所有经典排序算法1、选择排序 class SelectionSorter    {        private int min; ...

几种排序算法的c#实现

几种排序算法的实现冒泡排序 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整 让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序...

c#实现选择排序算法

  • 2009-06-23 17:41
  • 12KB
  • 下载

【快速排序算法-C#实现】

使用C#实现快速排序算法。 快速排序的基本思想: 分治法,即,分解,求解,组合 . 分解: 在 无序区R[low..high]中任选一个记录作为基准(通常选第一个记录,并记为keyValue,其下标...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)