1.冒泡排序:
方法一:
public static int[] MaoPao(int[] arr) { //执行多少次 for (int i = 0; i < arr.Length; i++) { //每执行1次,把最大的放在最后 for (int j = 0; j < arr.Length - 1; j++) { int a = arr[j]; int b = arr[j + 1]; if (a>b) { arr[j+1] = a; arr[j] = b; } } } return arr; }
冒泡排序2
public static int[] MaoPao2(int[] arr) { for (int i = arr.Length-1; i >=1; i--) { for (int j = 0; j<= j-1; j++) { int a = arr[j]; int b = arr[j + 1]; if (a > b) { arr[j + 1] = a; arr[j] = b; } } } return arr; }
选择排序;找最小的,放在前面,再找第2个小的,直到找完。
//选择排序 public static int[] XuanZhe(int[] arr) { int min, temp; //执行多少次 for (int i = 0; i < arr.Length; i++) { min = i; //最小值先取当前第1个 for (int j = i + 1; j < arr.Length; j++)//j从第2个值开始取 { if (arr[j] < arr[min]) { min = j; } } //先把最小值取出来了,再操作 temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } return arr; }
3.插入排序
后面一个和前面几个比较,是放前面,中间,还是后面
public static int[] InsertSort(int[] arr) { int inner, temp; //执行多少次 for (int i = 0; i < arr.Length; i++) { temp = arr[i]; inner = i; while (inner > 0 && arr[inner - 1] >= temp) { arr[inner] = arr[inner - 1]; inner -= 1; } arr[inner] = temp; foreach (var item in arr) { Console.Write(item + " "); } Console.WriteLine(); } return arr; }