• 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]);
                }*/
            }
        }
    }

  • 相关阅读:
    数据类型对照表
    MySql
    操作MongoDB
    Linux常用命令
    MongoDB性能参数
    有关Remoting的几个结论与论证
    异步获取远程文件
    Bigtable:一个分布式的结构化数据存储系统(转)
    windbg命令
    C#下几种排序算法
  • 原文地址:https://www.cnblogs.com/zztong/p/6695183.html
Copyright © 2020-2023  润新知