冒泡排序解析

 1 /******
 2 * List<int> vs = new List<int>() { 98,34, 23, 12, 13, 43, 23, 56,73};
 3 * var result= GetList(vs);
 4 * 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。
 5 * 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
 6 * 
 7 * 比较的总次数就是 (9-1)+(9-2)+(9-3)+(9-4)+(9-5)+(9-6)+(9-7)+(9-8)
 8 * 即 8+7+6+5+4+3+2+1=36(次)
 9 * ***********/
10 private static List<int> GetSortList(List<int> arrList)
11 {
12 //count 这个是用来记录总共进行了多少次比较
13 int count = 0;
14 //记录需要进行的轮数 总共需要进行多少轮循环 例如9个数 那么需要进行的轮数就是9-1次
15 for (int i = 0; i < arrList.Count; i++)
16 {
17 //这个是每一轮比较的次数
18 for (int j = 0; j < arrList.Count - 1 - i; j++)
19 {
20 count++;
21 Console.WriteLine($"比较的次数{count}");
22 //比较这两个数 如果
23 if (arrList[j] > arrList[j + 1])
24 {
25 #region 使用变量存储的方法
26 /*var temp = info[j];
27 info[j] = info[j+1];
28 info[j+1] = temp;*/
29 #endregion
30 
31 #region 不使用变量的另一种写法 变量之间的赋值
32 arrList[j] = arrList[j + 1] + (arrList[j + 1] = arrList[j]) * 0;
33 #endregion
34 
35 #region //不使用变量的另一种写法 加法的交换律
36 /*info[j] = info[j] + info[j + 1];
37 info[j + 1] = info[j] - info[j + 1];
38 info[j] = info[j] - info[j + 1];*/
39 #endregion
40 }
41 //循环输出每次比较之后的结果
42 arrList.ForEach(o => { Console.Write(o + "-"); });
43 //换行输出
44 Console.WriteLine("\r\n");
45 }
46 }
47 return arrList;
48 }

 

转载于:https://www.cnblogs.com/wwzorz/p/11473698.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值