C# 排序

  private void button1_Click(object sender, EventArgs e)
        {
            //需要的数据是 销售订单, 客户名称,项目名称
            List<DateTime> dateTimes = new List<DateTime>();
            for (int i = 0; i < 5; i++)
            {
                dateTimes.Add(DateTime.Now.AddHours(-i));
            }



            //打乱 集合 次序
            Random rand = new Random();
            for (int i = dateTimes.Count - 1; i > 0; i--)
            {
                int p = rand.Next(i); //1-5 为9个数. 索引为0-8; //随机数 不能去该上界
                DateTime temp = dateTimes[p];//随机取得存为临时变量
                dateTimes[p] = dateTimes[i];//把当前索引 和随机索引 的值替换. (因为取不到上界(当前索引))
                dateTimes[i] = temp;
            }
            dateTimes.Sort(); //排序


            int[] arra = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            for (int i = arra.Length - 1; i > 0; i--)
            {
                int p = rand.Next(i); //1-9 为9个数. 索引为0-8; //随机数 不能去该上界
                int temp = arra[p];//随机取得存为临时变量
                arra[p] = arra[i];//把当前索引 和随机索引 的值替换. (因为取不到上界(当前索引))
                arra[i] = temp;

            }
            for (int i = 0; i < arra.Length; i++)
            {
                Console.WriteLine(arra[i]);
            }

        }

 

  private void button1_Click(object sender, EventArgs e)
        {
            //需要的数据是 销售订单, 客户名称,项目名称
            List<temp1> dateTimes = new List<temp1>();
            for (int i = 0; i < 5; i++)
            {
                dateTimes.Add(new temp1() { 创建时间 = DateTime.Now.AddHours(-i), 结束时间 = DateTime.Now.AddHours((-i*2)) });
            }

            //打乱 集合 次序
            Random rand = new Random();
            for (int i = dateTimes.Count - 1; i > 0; i--)
            {
                int p = rand.Next(i); //1-5 为9个数. 索引为0-8; //随机数 不能去该上界
                temp1 temp = dateTimes[p];//随机取得存为临时变量
                dateTimes[p] = dateTimes[i];//把当前索引 和随机索引 的值替换. (因为取不到上界(当前索引))
                dateTimes[i] = temp;
            }

            var data =  dateTimes.OrderBy(n=>n.创建时间).ToList(); //排序 ; 默认升序

            var data0 = dateTimes.OrderByDescending(n => n.结束时间).ToList(); //排序 ; 降序
}

 

获得 两时间相差 天数  
        
  temp1 mode = new temp1();
            mode.创建时间 = DateTime.Now.AddDays((-2));
            int days = (DateTime.Now - mode.创建时间).Days;

--新手最爱 之冒泡排序

  private void button1_Click(object sender, EventArgs e)
        {
            int[] a = new int[] { 1, 5, 4, 3, 3, 2 };
            //从小到大排序
            int temp = 0;

            int i, j; bool flag = true;
            for (i = 0; i < a.Length; i++)
            {
                flag = true;
                for (j = 0; j < a.Length - 1; j++) //这边-1 就不用判断j+1 超出索引了,
                {
                    if (a[j] > a[j + 1]) //多循环一次;
                    {
                        temp = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = temp;
                        flag = false;
                    }
                }
                if(flag)
                {
                    break;
                }
            }
--

 //插入排序
        private void button2_Click(object sender, EventArgs e)
        {

            int[] a = new int[] { 1, 5, 4, 3, 3, 2 };

            for (int i = 1; i <a.Length; i++)
            {
                int temp = a[i];  //当前值
                int k = i - 1;

                while (k >= 0 && a[k] > temp) //前一个数 大于 当前数
                {
                    k--;
                }
                //腾出位置插进去,要插的位置是 k + 1;
                for (int j = i; j > k + 1; j--)
                {
                    a[j] = a[j - 1];
                }

                //插进去
                a[k + 1] = temp;
            }
        }
        //
        /*
       插入排序,比如 原始数据是, 154332
       找到当前值得左边值,大于当前值,
       把左边值赋值给当前值, 当前值给左边值,
        结果为 145332
        找到当前值得左边值,大于当前值,
        左边大于3得有45,找到4得索引,把5给3,4给5,3给4;
        结果为 134532
        找到当前值得左边值,大于当前值,
        左边大于3得有45,找到4得索引,把5给3,4给5,3给4;
        结果为 133452
        找到当前值得左边值,大于当前值,
        左边大于当前值的有3345, 找到3的索引(最左边的3)
        把 3345 右移一位,2给3(最左边的3)
        结果为  123345
         */

 

 出处  https://www.cnblogs.com/itsharehome/p/11058010.html
posted @ 2019-03-08 08:11  enych  阅读(938)  评论(0编辑  收藏  举报