
算法
冯居竹
驽马十驾,功在不舍。
展开
-
排序(桶排序)
所谓桶排序也称基数排序,按位上数字的大小(例如个位数来分桶),桶内进行排序int[] a = {23,5,32,4,23,256,867,45,3,54,54,766};public void radixSort(){ int max = 0; //找到最大的数 for(int i=0;i<a.length;i++){ if(max<a[i]){ max=a[i]; } } //根据最大的数判断位数 int times = 0; while(max &g..原创 2020-06-11 11:31:37 · 195 阅读 · 0 评论 -
(排序)归并排序
@Testpublic void TestMerge(){ mergeSort(a,low,a.length-1);}public void mergeSort(int[] a,int low,int high){ int mid=(low + high) /2; if(low < high){ //left mergeSort(a,low,mid); //right mergeSort(a,mid+1,high); //左右归并 merge(a,low...原创 2020-06-10 22:28:20 · 189 阅读 · 0 评论 -
交换排序(快速排序)
基本思想选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其拍好序后的正确位置,然后再用同样的方法递归地排序划分地两部分int a[] ={2,45,435,4,4,2,321,25,34,57};@Testpublic void quickSort(){ int[] tem = quickSort(a,0,a.length-1); System.out.println(Arrays.toS.原创 2020-06-08 12:24:34 · 235 阅读 · 0 评论 -
交换排序(冒泡排序)
冒泡排序基本思想在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,在较大的数往下沉,较小的往上冒。int a[] ={3,23,5,52,2,42,673,32,32,13};public void swap(int data,int i,int j){ int temp=a[i]; a[i]=a[j]; a[j]=temp;}public coid bubSort(){ for(int i=0;i<a.length;i+.原创 2020-06-07 10:11:58 · 249 阅读 · 0 评论 -
选择排序(堆排序)
堆排序是一种树形选择排序,是对直接选择排序的有效改进具有n个元素的序列(k1,k2,…kn),当且仅当 满足下面条件时称之为堆在这里讨论满足后者条件的大顶堆,我们所说的堆是一颗完全二叉树,树中的每个结点的值都不小(或不大于)其左右孩子结点的值。而大顶堆就是父节点的值大于或等于孩子结点的值。如何将n个待排序的数建成堆输出堆顶元素后,怎样调整剩余n-1个元素,使其成为一个新堆对n个元素初始建堆的方法对初始序列建堆的 过程,就是一个反复进行筛选的过程。n个结点的完全二叉树,则最后一个..原创 2020-06-06 10:07:27 · 1265 阅读 · 0 评论