using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sort
{
class Program
{
static void Main(string[] args)
{
int[] myData = { 1000, 3, 55, 33, 4, 34, 344, 23, 333, 32, 66, 76, 766, 454 };
// bubbleSort(myData);
// SelectSort(myData);
InsertSort(myData);
print(myData);
Console.ReadKey();
}
static void print(int[] items)
{
Console.WriteLine("*******显示数组开始*******");
foreach (int item in items)
{
Console.WriteLine(item);
}
Console.WriteLine("*******显示数组结束*******");
}
//冒泡
static void bubbleSort(int[] items)
{
bool flag; //设一个标志
for (int i = 0; i < items.Length - 1; i++)
{
flag = false;
for (int j = 0; j < items.Length - 1 - i; j++)
{
if (items[j] > items[j + 1])
{
int temp = items[j];
items[j] = items[j + 1];
items[j + 1] = temp;
flag = true; //标志设为true
}
}
if (flag == false)
return; //没发生交换,表明当前已经有序,直接返回
}
}
//选择 从0开始,从剩余部分数组中选出最小值
static void SelectSort(int[] arr)
{
int min;
for (int i = 0; i < arr.Length - 1; ++i)
{
min = i;
for (int j = i + 1; j < arr.Length; ++j)
{
if (arr[j] < arr[min])
min = j;
}
int t = arr[min];
arr[min] = arr[i];
arr[i] = t;
}
}
//插入排序--直接插入
static void InsertSort(int[] arr)
{
for (int i = 1; i < arr.Length; i++)
{
int t = arr[i];
int j = i;
while ((j > 0) && (arr[j - 1] > t))
{
arr[j] = arr[j - 1];//交换顺序
--j;
}
arr[j] = t;
}
}
}
}