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