1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace 冒泡排序
8 {
9 class Program
10 {
11
12 static void Main(string[] args)
13 {
14 int[] data = new int[] { 42, 20, 17, 27, 13, 8, 17, 48,1,22 };
15 BubbleSort(data);
16 foreach (var temp in data)
17 {
18 Console.Write(temp + " ");
19 }
20 Console.ReadKey();
21 }
22
23 //以下展示的是两种实现方法,推荐使用第一种:
24
25 /// <summary>
26 /// 最底下元素对应最小索引
27 /// </summary>
28 /// <param name="dataArray"></param>
29 static void BubbleSort(int[] dataArray)
30 {
31 for (int i = 0; i < dataArray.Length; i++) //有多少个数就要遍历多少趟
32 {
33 for (int j = 0; j < dataArray.Length - 1 - i; j++)
34 //每一次会将最小的一个排在首位,所以次数会依次减少 -i只是为了性能考虑,因为每一次都会将最大值放到最后,所以最后一个值可以随趟数进行减少
35 {
36 if (dataArray[j] > dataArray[j + 1]) //交换位置
37 {
38 int temp = dataArray[j];
39 dataArray[j] = dataArray[j + 1];
40 dataArray[j + 1] = temp;
41 }
43 }
44 }
45 }
46
47 //从上到下
48 //static void BubbleSort(int[] dataArray)
49 //{
50 // for (int i = 0; i < dataArray.Length; i++)
51 // {
52 // for (int j = dataArray.Length - 1; j > i; j--)
53 // {
54 // if(dataArray[j]<dataArray[j-1]) //如果前一个元素大于最后面一个元素则交换位置
55 // {
56 // int temp = dataArray[j];
57 // dataArray[j] = dataArray[j - 1];
58 // dataArray[j - 1] = temp;
59 // }
60 // }
61 // }
62 //}
63 }
64 }