基础算法系列 之快速排序

news/2024/5/20 0:30:17 标签: 算法, 排序算法, 快速排序

快速排序和冒泡排序一样,也是交换排序的一种。
快速排序的准则就是“找基准数,大小分开;分而治之,递归使用”。基本代码如下:

public static void quickSort(int[]arr,int start,int end){
	if(start < end){
		int stard = arr[start];		//找到基准数
		int low = start;		//定义排序下标和上标
		int high = end;
		while(low < high){
			while(low < high && stard <= arr[high]){
   				high--;
 			 }
 			 arr[low] = arr[high];
 			while(low < high && stard >= arr[low]){
     				low++;
  			 }
   			 arr[high] = arr[low];
   		}
   		arr[low] = stard;		//第一轮排序结束
   		quickSort(arr,start,low);	//递归调用
   		quickSort(arr,low+1,end);
	}
}

	

http://www.niftyadmin.cn/n/1223898.html

相关文章

基础算法系列 之插入排序

直接插入排序和希尔排序一样&#xff0c;都是插入排序的一种。按照难易程度先整理下直接插入排序&#xff0c;希尔排序后续安排。 直接插入排序的准则就是“遍历数字&#xff0c;找出基准&#xff1b;以此为点&#xff0c;依次移动”。基本代码如下&#xff1a; public static…

基础算法系列 之希尔排序

希尔排序和上文中的直接插入一样&#xff0c;都是插入排序的一种。之前直接插入排序的缺点是假如小数在靠后的位置&#xff0c;则其前面的数都要前提&#xff0c;希尔排序则是先取步长&#xff0c;这样可以减少移动的次数。 希尔排序的准则就是“先取步长&#xff0c;再分小组&…

人工智能系列 之常用英文词汇

深度学习&#xff1a; 1 three steps for deeping learning: define a setof function–>goodness of function–>pick the best function 1-1 neural network parameters each neurons can have different values of weights and biases. feed forward vector 1-2 three…

基础算法系列 之归并排序

归并排序是一种独立的排序思想&#xff0c;其排序准则就是“先行拆分&#xff0c;小组排序&#xff1b;之后归并&#xff0c;再行排序”。代码如下&#xff1a; public static void merge(int[]arr,int low,int m,int high){ int[]tempnew int[high-low1];int ilow;int jm1;in…

基础算法系列 之基数排序

基数排序是一种独立的排序思想&#xff0c;其排序准则就是“按位分组&#xff0c;再行排序”&#xff0c;适用于不同位数的排序。其代码如下&#xff1a; public static void radixSort(int[]arr){int [][] temp new int[10][arr.length];int max Integer.MIN_VALUE; //存最…

办公软件系列 之excel应用1

小前言&#xff1a; 一般对于办公软件的使用博客少之又少&#xff0c;而且关键词描述不太清楚&#xff0c;导致搜索的内容质量极低&#xff0c;又限于是软件版本的问题&#xff0c;有些教程根本行不通。于是将自己在工作和学习之中用到的软件技巧和公式功能记录下来&#xff0c…

基础算法系列 之线性查找

本文中介绍的线性查找为二分法查找方式&#xff0c;前提要求数组或者序列是有序的。二分法查找是查找方式中效率较高的一种&#xff0c;时间复杂度是logN&#xff0c;推导过程比较简单&#xff0c;设次数为x&#xff0c;N*&#xff08;1/2&#xff09;^x1&#xff08;之所以等于…

基础算法系列 之栈和队列

栈和队列严格意义上来说也属于线性表&#xff0c;因为它们也都用于存储逻辑关系为 “一对一” 的数据&#xff0c;其中栈为先进后出&#xff0c;队列为先进先出。其代码如下&#xff1a; public class myStack{private int[]elements;public myStack(){elementsnew int[0];}pu…