# SortDemo **Repository Path**: itweidd/SortDemo ## Basic Information - **Project Name**: SortDemo - **Description**: 排序算法demo - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-30 - **Last Updated**: 2021-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 日常笔记: * 本打算是做算法笔记的后来成了Java笔记 ## ## 排序算法demo(SortDemo) ## 十大排序算法: ### 一:冒泡排序 BubbleSortDemo 1.比较相邻两个元素,如果前一个比后一个大,则交换; 2.对每一对相邻的元素进行比较,从第一对到最后一对,首次完成后,最后一位的元素值就是最大值; 3.对所有的元素重复以上操作,除最后一个外; ### 二:选择排序 SelectSort 1:首先从数组中选出最小值,将最小值放置到数组的起始位置; 2:再从剩下未排序的数组中找出最小值,放置到以排序的尾部; 3:重复上一步操作,直至数组完成排序(有种递归的感觉) ### 三:归并排序 MergeSort 和所有递归一样,将数据的量级最小化,化繁为简,从小处反推到大。将大的复杂的问题转变为与之相似的小的问题。 使用递归的知识分解,合并时候为两个有序数组的合并。 a:将大的量级的数组转换成两个均包含一个元素数组(递归) b:将小范围的有序数据进行合并(有序数组的合并) ### 四:快速排序 QuickSort 快速排序: QuickSort 思想:分治 指针交换法、挖坑法 1:从数组中找出一个元素作为基准(pivot)。 2:排序,将所有比基准数小的放到基准的左侧,比基准大的放到基准的右侧。该操作称为分区(partition) 3:递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;