排序问题
来源:互联网 发布:网络协议的功能 编辑:程序博客网 时间:2024/05/17 02:54
using System;
namespace BasicSorter
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
int[] iArrary=new int[]{95,2,70,13,6,10,55,99,87,12,34,75,4,33,75,1};
foreach(int i in iArrary)
Console.Write("{0} ",i);
Console.WriteLine();
//冒泡排序
//BubbleSorter bs=new BubbleSorter();
//bs.Sort(iArrary);
//
//选择排序
//SelectSorter ss=new SelectionSorter();
//ss.Sort(iArrary);
//
//插入排序
//InsertSorter is1=new InsertSorter();
//is1.Sort(iArrary);
//
//希尔排序
//ShellSorter ss1=new ShellSorter();
//ss1.Sort(iArrary);
//
//快速排序
RapidSort rs=new RapidSort();
rs.Sort(iArrary,0,iArrary.Length-1);
foreach(int i in iArrary)
Console.Write("{0} ",i);
Console.WriteLine();
}
}
//
//冒泡排序
//
public class BubbleSorter
{
public void Sort(int [] list)
{
int i,j,temp;
/*
------------------------------
for(j=0;j<list.Length;j++)
{
for(i=(list.Length-1);i>j;i--)
{
if(list[i-1]>list[i])
{
temp=list[i-1];
list[i-1]=list[i];
list[i]=temp;
}
}
}
-----------------------------
*/
bool flag=false;
j=1;
while((j<list.Length)&&(!flag))
{
flag=true;
for(i=0;i<list.Length-j;i++)
{
if(list[i]>list[i+1])
{
flag=false;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
}
}
j++;
}
}
}
//
//选择排序
//
public class SelectSorter
{
private int min,temp;
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;
}
temp=list[min];
list[min]=list[i];
list[i]=temp;
}
}
}
//
//插入排序
//
public class InsertSorter
{
public void Sort(int [] list)
{
for(int i=1;i<list.Length;i++)
{
int temp=list[i];
int j=i;
while((j>0)&&(list[j-1]>temp))
{
list[j]=list[j-1];
--j;
}
list[j]=temp;
}
}
}
//
//希尔排序
//对直接插入排序作了改进,将组分段,进行插入排序
//又称“缩小增量排序
//
public class ShellSorter
{
public void Sort(int [] list)
{
int i,j,d,temp;
d=(list.Length)/2;
while(d>=1)
{
for(i=d;i<list.Length;i++)
{
temp=list[i];
j=i-d;
while((j>=0) && (temp<list[j]))
{
list[j+d]=list[j];
j=j-d;
}
list[j+d]=temp;
}
d=d/2;
}
}
}
//
//快速排序
//
public class RapidSort
{
public void Sort(int [] list,int min,int max)
{
int i,j,temp;
if(min<max)
{
i=min;
j=max;
temp=list[i];
while(i!=j)
{
while((temp<list[j]) && (i<j)) //从右端向内进行扫描
j--;
if(i<j)
{
list[i]=list[j];
i++;
}
while((temp>=list[i]) && (i<j)) //从左端向内进行扫描
i++;
if(i<j)
{
list[j]=list[i];
j--;
}
list[i]=temp;
if(j>0)
Sort(list,min,i-1); //处理左侧无序子区
if(i<(list.Length-1))
Sort(list,i+1,max); //处理右侧无序子区
}
}
}
}
}
namespace BasicSorter
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
int[] iArrary=new int[]{95,2,70,13,6,10,55,99,87,12,34,75,4,33,75,1};
foreach(int i in iArrary)
Console.Write("{0} ",i);
Console.WriteLine();
//冒泡排序
//BubbleSorter bs=new BubbleSorter();
//bs.Sort(iArrary);
//
//选择排序
//SelectSorter ss=new SelectionSorter();
//ss.Sort(iArrary);
//
//插入排序
//InsertSorter is1=new InsertSorter();
//is1.Sort(iArrary);
//
//希尔排序
//ShellSorter ss1=new ShellSorter();
//ss1.Sort(iArrary);
//
//快速排序
RapidSort rs=new RapidSort();
rs.Sort(iArrary,0,iArrary.Length-1);
foreach(int i in iArrary)
Console.Write("{0} ",i);
Console.WriteLine();
}
}
//
//冒泡排序
//
public class BubbleSorter
{
public void Sort(int [] list)
{
int i,j,temp;
/*
------------------------------
for(j=0;j<list.Length;j++)
{
for(i=(list.Length-1);i>j;i--)
{
if(list[i-1]>list[i])
{
temp=list[i-1];
list[i-1]=list[i];
list[i]=temp;
}
}
}
-----------------------------
*/
bool flag=false;
j=1;
while((j<list.Length)&&(!flag))
{
flag=true;
for(i=0;i<list.Length-j;i++)
{
if(list[i]>list[i+1])
{
flag=false;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
}
}
j++;
}
}
}
//
//选择排序
//
public class SelectSorter
{
private int min,temp;
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;
}
temp=list[min];
list[min]=list[i];
list[i]=temp;
}
}
}
//
//插入排序
//
public class InsertSorter
{
public void Sort(int [] list)
{
for(int i=1;i<list.Length;i++)
{
int temp=list[i];
int j=i;
while((j>0)&&(list[j-1]>temp))
{
list[j]=list[j-1];
--j;
}
list[j]=temp;
}
}
}
//
//希尔排序
//对直接插入排序作了改进,将组分段,进行插入排序
//又称“缩小增量排序
//
public class ShellSorter
{
public void Sort(int [] list)
{
int i,j,d,temp;
d=(list.Length)/2;
while(d>=1)
{
for(i=d;i<list.Length;i++)
{
temp=list[i];
j=i-d;
while((j>=0) && (temp<list[j]))
{
list[j+d]=list[j];
j=j-d;
}
list[j+d]=temp;
}
d=d/2;
}
}
}
//
//快速排序
//
public class RapidSort
{
public void Sort(int [] list,int min,int max)
{
int i,j,temp;
if(min<max)
{
i=min;
j=max;
temp=list[i];
while(i!=j)
{
while((temp<list[j]) && (i<j)) //从右端向内进行扫描
j--;
if(i<j)
{
list[i]=list[j];
i++;
}
while((temp>=list[i]) && (i<j)) //从左端向内进行扫描
i++;
if(i<j)
{
list[j]=list[i];
j--;
}
list[i]=temp;
if(j>0)
Sort(list,min,i-1); //处理左侧无序子区
if(i<(list.Length-1))
Sort(list,i+1,max); //处理右侧无序子区
}
}
}
}
}
- 排序问题-归并排序
- 排序问题-快速排序
- 【排序问题】选择排序
- 排序问题
- 排序 问题
- 排序问题
- 排序问题~~
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- 排序 问题
- 排序问题
- 排序问题
- 排序问题
- 排序问题
- Advice for Computer Science College Students(对计算级系大学生的建议)
- 在OGL上使用CG
- 我的Java-RSS解析器
- 复习一下光照模型
- 我对虚拟内存的一点看法
- 排序问题
- 6月12日阴
- 快速排序
- 快速排序2
- ASP精华代码
- C#如何在Form中嵌入并且操作Excel表格
- WEB Q A
- SELECT 强查询
- access数据库插入图片