C#之直接插入排序

//文件中的数据格式为
// 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]);
            }*/
        }
    }
}

原文地址:https://www.cnblogs.com/zztong/p/6695183.html