简单算法(冒泡和直接)
不想多说直接看代码
class AlgorithmClass { /// <summary> /// 冒泡算法 /// </summary> /// <param name="IntArray">int数组</param> /// <returns></returns> public static int[] BubbleInt(int [] IntArray) { for (int i = 0; i < IntArray.Length-1; i++) { for (int j = i+1; j < IntArray.Length; j++) { if (IntArray[i] > IntArray[j]) { IntArray = ArraySwitching(IntArray, j, i); } } } return IntArray; } /// <summary> /// 直接排序算法 /// </summary> /// <param name="IntArray">int数组</param> /// <returns></returns> public static int[] DirectInt(int[] IntArray) { for (int i = 0; i < IntArray.Length-1; i++) { int IntTemp = i; for (int j = i+1; j < IntArray.Length; j++) { if (IntArray[IntTemp] > IntArray[j]) { IntTemp = j; } } if (IntTemp!=i) { IntArray= ArraySwitching(IntArray,IntTemp,i); } } return IntArray; } /// <summary> /// 数组位置交换 /// 将数组中索引i的值跟索引num的值进行交换 /// </summary> /// <param name="Array">交换数组</param> /// <param name="i">数组索引i</param> /// <param name="num">数组索引num</param> /// <returns>返回交换后数组</returns> public static int[] ArraySwitching(int[] Array,int i,int num ) { int Temp = Array[i]; Array[i] = Array[num]; Array[num] = Temp; return Array; } }
其实冒泡排序理解起来很简单,只要记住数组中的小的往下沉大的往上飘就行,当然反过来大的往下沉小的往上飘也是可以的;
直接排序也很好理解,你只要在第一次遍历时把最小的值跟数组的第一个位置进行交换;第二次用重复的步骤去进行交换,但要注意的是不要把已经排序好的第一个数组的值拿去遍历;以此类推一直到排序完成。

浙公网安备 33010602011771号