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