参考网络及其他书籍自己敲的,经验证通过
/********选择排序********/
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace selectsort
{
class Program
{
static void Main(string[] args)
{
//选择排序
//定义并初始化要排序的元素数组
int[] sortnumbers = { 2, 5, 9, 11, 65, 37, 28, 96, 55 };
int i = 0;
//for循环,找参考元素
for (i = 0; i < sortnumbers.Length-1; i++) {
int min=i;
//for循环,依次与参考元素比较大小,找出最小的放到最前边
for (int j = i + 1; j < sortnumbers.Length; j++) {
if (sortnumbers[j] < sortnumbers[min])
min = j;
}
//交换元素
int temp = sortnumbers[min];
sortnumbers[min] = sortnumbers[i];
sortnumbers[i] = temp;
}
//for循环输出排好的元素
for (i = 0; i < sortnumbers.Length; i++) {
Console.Write( "{0,7}",sortnumbers[i]);
}
Console.Read();
}
}
}
/***** 冒泡排序 ******/
namespace bubblesort1
{
class Program
{
static void Main(string[] args)
{
//定义并初始化数组
int[] sortnumbers = { 2, 5, 53, 92, 44, 30, 11, 105, 73, 88, 25 };
int i = 0;
//for循环控制范围
for (i = 0; i < sortnumbers.Length-1; i++) {
//for循环进行交换
for (int j = 0; j < sortnumbers.Length - 1 - i; j++) {
//判断j+1元素是否大于j元素,是交换位置
if (sortnumbers[j + 1] < sortnumbers[j]) {
//实际交换元素
int temp = sortnumbers[j + 1];
sortnumbers[j + 1] = sortnumbers[j];
sortnumbers[j] = temp;
}
}
}
//for循环输出
for (i = 0; i < sortnumbers.Length; i++) {
Console.Write("{0,5}", sortnumbers[i]);
}
Console.Read();
}
}
}
/***********************************************************************************/
/******* 插入排序* *********/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace insertsort1
{
class Program
{
static void Main(string[] args)
{
//插入排序
int[] sortnumbers = { 9, 4, 5, 12, 63, 35, 97, 42, 15, 11, 105, 80 };
int i = 0;
for (i = 0; i < sortnumbers.Length; i++) {
int temp = sortnumbers[i];
int j = i;
while (j > 0 && sortnumbers[j-1] > temp) {
sortnumbers[j] = sortnumbers[j - 1];
j--;
}
sortnumbers[j] = temp;
}
for (i = 0; i < sortnumbers.Length; i++) {
Console.Write("{0,4}", sortnumbers[i]);
}
Console.Read ();
}
}
}
/**************************************************************************************/
/*******希尔排序 ********/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace insertsort1
{
class Program
{
static void Main(string[] args)
{
//希尔排序
int[] sortnumbers = { 9, 4, 5, 12, 63, 35, 97, 42, 15, 11, 105, 80 };
int i = 0, gap = sortnumbers.Length / 2;
while (gap >0)
{
for (i = gap; i < sortnumbers.Length; i++) {
int temp = sortnumbers[i];
int j = i-gap;
while ( j >= 0 && sortnumbers[j] > temp)
{
sortnumbers[j+gap] = sortnumbers[j];
j -= gap;
}
sortnumbers[j+gap] = temp;
}
gap /= 2;
}
for (i = 0; i < sortnumbers.Length; i++)
{
Console.Write("{0,4}", sortnumbers[i]);
}
Console.Read();
}
}
}
/*****************************************************************************************/
/********快速排序 *******/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace quicksort
{
class Program
{
static void Main(string[] args)
{
int[] array = { 5, 4, 2, 89, 36, 6 };
Sort(array, 0, array.Length - 1);
for (int i = 0; i < array.Length;i++ )
Console.WriteLine(array[i]);
Console.Read();
}
public static void Sort(int[] array,int left,int right){
int i,j,temp;
if(left>right)
return ;
i = left;
j = right;
temp = array[left];
while (i != j) {
while (array[j] >= temp && i < j)
j--;
while (array[i] <= temp && i < j)
i++;
if (i < j) {
int t = array[i];
array[i] = array[j];
array[j] = t;
}
}
array[left] = array[i];
array[i] = temp;
Sort(array,left,i-1);
Sort(array,i+1,right);
}
}
}
/***********************************************************************/