//文件中的数据格式为
// 1 2 3 4 5
// 1 2 3 5 6
using System;
using System.Text;
using System.Collections;
using System.IO;
namespace InsertSort
{
class Program
{
static void Main()
{
string path=@"F://test.txt";
StreamReader sr = new StreamReader(path, Encoding.Default);
string temp;
ArrayList aL = new ArrayList();
while ((temp = sr.ReadLine()) != null)
{
string[] s = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);//根据空格区分数据
int tempInt;
foreach (string i in s)
{
tempInt = Convert.ToInt32(i); //string转换成int,基本数据类型的转换
aL.Add(tempInt); //将读取到的数据存入aL中
}
}
int[] data = new int[aL.Count]; //将aL中的数据存入data方便使用排序算法排序
for (int i = 0; i < aL.Count; i++)
{
data[i] = (int)aL[i];
}
//直接插入排序算法
int curPosition = 1;//无序集中的第一个元素所在的位置
//string ss = DateTime.Now.Millisecond.ToString();
//Console.WriteLine(ss);
while (curPosition < data.Length)
{
int temp2=data[curPosition];
for (int i = 0; i < curPosition; i++)
{
if (temp2 < data[i]) //将无序集中的第一个元素与有序集中的数据按顺序比较大小
{
for (int j = curPosition; j > i; j--) //挪动元素
{
data[j] = data[j - 1];
}
data[i] = temp2;
break;
}
}
curPosition++;
}
//aL.Sort();
//string s1 = DateTime.Now.Millisecond.ToString();
//Console.WriteLine(s1);
/*for (int i=0;i<data.Length; i++)
{
Console.WriteLine(data[i]);
}*/
}
}
}
C#之直接插入排序
本文转载:CSDN博客