using System;
namespace 排序算法
{
class Class1
{
static void Main(string[] args)
{
int[] arr = new int[]{49,38,65,97,76,13,27,49};
int i;
System.Console.WriteLine("排序前");
for(i=0; i<arr.Length; i++)
System.Console.WriteLine(arr[i]);
simpleSelectionSorting(arr, arr.Length);
System.Console.WriteLine("排序后");
for(i=0; i<arr.Length; i++)
System.Console.WriteLine(arr[i]);
}
/** 起泡排序
* 将长度为 len 的记录表的记录按非递减有序排列
*/
static void bubbleSorting(int[] arr, int len)
{
int i, j;
int temp;
for(i=0; i<len-1; i++) //控制循环的趟数
{
for(j=0; j<len-i-1;j++) //控制某趟数所对应的次数
{
if(arr[j]>arr[j+1]) //逆序则交换
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
/** 简单选择排序
* 将长度为 len 的记录表的记录按非递减有序排列
*/
static void simpleSelectionSorting(int[] arr, int len)
{
int i, j, k;
int temp;
for(i=0; i<len-1; i++) //控制循环的趟数
{
for(j=i,k=i; j<len;j++) //从len-i+1条记录中选择最小的记录
{
if(arr[k]>arr[j])
k = j; //记录较小记录的下标
}
if(k!=i) //如果len-i+1条记录的最小记录和第i条记录不重合
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}
}
}
}