用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。 插入排序: package org.rut.util.algorithm.support; import org.rut.util.algorithm.SortUtil; /** * @author treeroot * @since 2006-2-2 * @version 1.0 */ public class InsertSort implements SortUtil.Sort { /* (non-Javadoc) * @see org.ru...
/** * @desc 冒泡算法 for java * @auth BianJiang * * 纯碎学习之用 */ class BobbleSort { public static void main(String[] args) { int i,j,k; int[] num = {5, 4, 3, 2, 1}; for(i=1; inum.length; i++) { for(j=0; j=num.length -i -1; j++) { if(num[j] > num[j+1]) { num[j] = num[j] + n...
冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。 而选择排序的思想也很直观:每一次排序过程,我们获取当前未排序数列中的最大(小)的元素,跟数组最右(左)端的元素进行交换,循环这个过程即可实现对整个数组排序。 是不是有点晕?俺写两段代码,俺让这两段代码尽可能地相似,就可以看出二者的不同了 下面这段是“冒泡法” int a[]={2...
文件:astar.rar 大小:1KB 下载: 下载 文件:chpt2-1.zip 大小:1091KB 下载: 下载 [color="#5f5f5f"]A*算法,作为启发式算法中很重要的一种,被广泛应用在最优路径求解和一些策略设计的问题中。而A*算法最为核心的部分,就在于它的一个估值函数的设计上: f(n)=g(n)+h(n) 其中f(n)是每个可能试探点的估值,它有两部分组成:一部分为g(n),它表示从起始搜索点到当前点的代价(通常用某结点在搜索树中的...
看到一到关于排序的考试题 show how to sort n integers in the range 0 to n*n-1 in O(n) time. 在0到n方-1的这n方个数中选择n个数(无序),怎样排序才能使排序的时间复杂度为O(n). thank you for your replay!