算法
CxToBj
这个作者很懒,什么都没留下…
展开
-
基数排序算法
第一轮 (1)将每个元素的个位取出,然后看这个数应该放到哪个对应的桶 (一个桶一个一维数组,一共10个数组)位数没有的补零 (2)按照这个桶的顺序(一维数组的下标依次取出数据,放入原来数组) 第二轮: (1)将每个元素的十位取出,然后看这个数应该放到哪个对应的桶(一个桶 一个一维数组,一共10个数组) (2)按照这个桶的顺序(一维数组的下标依次取出数据,放入原来数组)。。。 public static void radixSort(in原创 2021-12-08 18:41:46 · 404 阅读 · 0 评论 -
归并排序算法
/** 该算法利用了分治思想 即先把一个数组从中间分开,然后在把左边和右边的在从左右两边中间分开... 直到分到就剩一个元素 然后在从相邻单个元素比较然后归并 * 分 + 合的方法 * 归并排序 * 时间复杂度 : */ public void mergeSort(int[] arr, int left, int right, int[] temp ){ if(left...原创 2021-12-01 15:06:48 · 498 阅读 · 0 评论 -
快速排序算法
先找个中轴上的值,把小于中轴值的放在左边,大于中轴值的放在右边,然后依次向左递归或者向右递归 /* *快速排序法 * 时间复杂度 : */ public void quickSort(int arr[],int left,int right){ int l=left;//最左边下标 int r=right;//最右边下标 int povit=arr[(left+right)/2];//中轴的值原创 2021-11-29 17:01:15 · 197 阅读 · 0 评论 -
希尔排序算法
希尔排序:插排后更高效排序,缩小增量排序。把记录按下标的一定增量分组。对每组使用直接插入排序算法排序;随着增量减少,包含关键词越来越多,当增量减少到1时,整个文件被分成一组,算法便终止。分交换法和移动法。如 int arr[] = {8,9,1,7,9,3,5,4,6,0};先让 8和3,9和5,1和4...等待比较 /* *希尔排序插入 交换法 * 时间复杂度 : */ public void shellSort(int arr[]){原创 2021-11-29 16:57:10 · 299 阅读 · 0 评论 -
插入排序算法
插入排序: 把n个带排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含一个元素,无序表中包含有n-1个元素。第二个元素和第一个元素比较;第三个元素在和前两个元素比较;第四个在和前三个元素比较。 /* *插入排序 * 时间复杂度 : O(n^2) */ public void insterSort(int arr[]){ for (int i = 1; i <arr.length ; i++) { for (i原创 2021-11-29 16:51:30 · 328 阅读 · 0 评论 -
选择排序算法
选择排序:第一次从arr[0]-arr[n-1]中选取最小的,与arr[0]交换,第二次从arr[1]-arr[n-1]中选取最小的.1)选择排序一个有数组大小-1轮排序。第一个和第二个比;第一个和第三个比;第一个和第四个比; /* *选择排序 * 时间复杂度 : O(n^2) */ public void selectSort(int arr[]){ for (int i = 0; i <arr.length-1 ; i++) {原创 2021-11-29 16:46:56 · 64 阅读 · 0 评论 -
冒泡排序解释说明
说明;相邻元素比较。如果一趟比较下来没有进行交换,就说明有序,因此要在排序过程中设置一个flag判断元素是否进行过交换。从而减少不必要的比较(优化)1)一共要进行数组大小-1次大的循环。2)每一次排序都在减小. /** * 冒泡排序 * 时间复杂度 : O(n^2) * */ public void bubblingSort(int arr[]){ int temp=0; boolean flag=false;/原创 2021-11-29 16:41:56 · 139 阅读 · 0 评论