c语言一维数组怎么快速排列
377
2022-09-04
C#算法 选择排序、冒泡排序、插入排序
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; }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~