快速排序在也算是一种常见的比较高效的算法了,它是冒泡排序的升级版。
具体原理思路:
1,在数组中找一个数为基准。
2,定义两个指针从左到右分别与基准做对比,大的数字放右边,小的放左边。
3,递归实现。
具体实现代码:
//快速排序 public static void QuickSort(int[] arr,int begin,int end) { if (begin < end) { int Mid = arr[begin];//定义一个比较的基准 int i = begin;//记录开始位置 int j = end;//记录指针指向的结束 while (i < j)//判断开始指针和结束指针是否重合 { //移动指针 while (i < j)// { if (arr[j] <= Mid )//如果指针指向的值小于基准值 { arr[i] = arr[j];//交换位置 break;//跳出循环 } else { j--;//移动指针 } } while (i < j) { if (arr[i] >= Mid )//指针i指向的值大于基准值 { arr[j] = arr[i];//交换位置 break;//跳出循环 } else { i++;//移动指针 } } } arr[i] = Mid; 将基准值赋值给最后一个位置。 QuickSort(arr, begin, i - 1); //左递归 QuickSort(arr, i + 1, end);//右递归 } }