简单排序算法一般有简单选择排序、直接插入排序、冒泡排序、希尔排序、堆排序、
快速排序、归并排序、基数排序这几种。
先写几个简单的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 排序
{
class Program
{
/// <summary>
/// 简单选择排序
/// </summary>
/// <param name="A"></param>
public static void Simple_Selection_Sort(int[] A)
{
int i, j, min;
for (i = 0; i < A.Length - 1; i++)
{
min = i;
for (j = i + 1; j < A.Length ; j++)
{
if (A[j] < A[min])
min = j;
}
int m = A[min];
A[min] = A[i];
A[i] = m;
}
for (int a = 0; a < A.Length ; a++)
{
Console.WriteLine(A[a]);
}
}
/// <summary>
/// 冒泡排序
/// </summary>
/// <param name="args"></param>
public static void Bubble_Sort(int[] A)
{
int m, n;
for (m = 0; m < A.Length-1; m++)
{
for (n = 0; n < A.Length - 1 - m; n++)
{
if (A[n] > A[n + 1])
{
int t = A[n];
A[n] = A[n+1];
A[n + 1] = t;
}
}
}
for (int k = 0; k < A.Length; k++)
{
Console.WriteLine(A[k]);
}
}
/// <summary>
/// 简单插入排序
/// </summary>
/// <param name="args"></param>
public static void Insertion_Sort(int[] A)
{
int p, i,temp;
for (i =0; i < A.Length; i++)
{
temp = A[i];
for (p = i; p > 0 && A[p - 1] > temp; p--)
{
A[p] = A[p - 1];
}
A[p] = temp;
}
for (int k = 0; k < A.Length; k++)
{
Console.WriteLine(A[k]);
}
}
/// <summary>
/// 希尔排序
/// </summary>
/// <param name="args"></param>
public static void Shell_Sort(int[] A)
{
int i, s;
int[] Sedgewick = { 929,505,209,41,19,5,1,0};
for (s = 0; Sedgewick[s] >= A.Length; s++) ;
for(i=Sedgewick [s];i>0;i=Sedgewick[++s])
{
Insertion_Sort(A);
}
}
static void Main(string[] args)
{
string[] str = Console.ReadLine().Split ('-');
int[] array = new int[str.Length];
for (int k = 0; k < str.Length; k++)
{
array[k] = Convert.ToInt32(str[k]);
}
Shell_Sort (array);
Console.ReadLine();
}
}
}
—————————————————————————————————
经过测试均能实现排序。