//选择排序 private void selectSort(int[] array) { int temp = 0; //temp里保存最小值 for (int i = 0; i < array.Length; i++) { //假设将要比较的第一个数为最小值 temp=array[i]; int minnumber=i;//保存最小值的下标 for (int j = i + 1; j < array.Length; j++) { if (array[j] < temp) { temp = array[j]; minnumber = j; } } //交换值 array[minnumber] = array[i]; array[i] = temp; } } //冒泡排序 private void bubbleSort(int[] array) { for (int i = 0; i < array.Length; i++) { for (int j = i + 1; j < array.Length; j++) { if (array[j] < array[i]) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } //快速排序 public void quickSort(int[] Array, int p, int r) { if (p < r) { int q = partition(Array, p, r); //递归调用 quickSort(Array, p, q - 1); quickSort(Array, q + 1, r); } } //一趟快速排序 public int partition(int[] Array, int p, int r) { int x = Array[r];//带比较的值,直接取最后一个 int i = p - 1;//i用来记录需要被换到后面的大值 for (int j = p; j <r; j++) { if (Array[j] <= x) { //找到了一个小值,就把它与左边的大值交换,值的大小以记录的x为标准 i++; //把较小的值放到数组左边 this.swap(i, j, Array); } } //是把进行比较的值(最初放在了数组最后)与该值正确的位置进行互换 this.swap(i + 1, r, Array); return i + 1; } // 数组内的交换 private void swap(int a, int b, int[] arraySort) { int tmp = arraySort[a]; arraySort[a] = arraySort[b]; arraySort[b] = tmp; }