基础算法系列 之选择排序

news/2024/5/19 21:14:09 标签: 算法, 排序算法, 快速排序, java

选择排序也是入门算法必学的内容,和冒泡排序一样,都是基础算法开篇内容。与冒泡排序的相同点是时间复杂度都是O(n*n),不同点是可能所属的排序类别不同,冒泡排序和快速排序都是交换排序系列,简单选择排序和堆排序都是选择排序系列。
选择排序的准则就是“双重循环,两轮控制;定一对比,大小换序”基本代码如下:

public static void selectSort(int[]arr){
	for(int i=0;i<arr.length;i++){   //控制轮次
 		for(int j=i+1;j<arr.length;j++){   //两个数依次比较
  			if(arr[i]>arr[j]){   //两个数交换条件,依次把i和i之后的数比较
  				int temp=arr[i];
   				arr[i]=arr[j];
   				arr[j]=temp;
			}
		}
	}
} 

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

相关文章

基础算法系列 之快速排序

快速排序和冒泡排序一样&#xff0c;也是交换排序的一种。 快速排序的准则就是“找基准数&#xff0c;大小分开&#xff1b;分而治之&#xff0c;递归使用”。基本代码如下&#xff1a; public static void quickSort(int[]arr,int start,int end){if(start < end){int sta…

基础算法系列 之插入排序

直接插入排序和希尔排序一样&#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;之所以等于…