`
kfcman
  • 浏览: 400022 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 几种基础算法的实现 (五)

 
阅读更多

冒泡排序

选择排序

插入排序

  /**
  1.  
    * 数组排序法
  2.  
    */
  3.  
    public class SelectSort {
  4.  
    public static void main(String[] args) {
  5.  
    int a[]={5,2,8,4,1,9,16};
  6.  
    System.out.println("冒泡排序法:"+Arrays.toString(bubble(a)));
  7.  
    int b[]={5,2,8,4,1,9,16};
  8.  
    System.out.println("选择排序法"+Arrays.toString(select(b)));
  9.  
    int c[]={5,2,8,4,1,9,16};
  10.  
    System.out.println("插入排序法"+Arrays.toString(insert(c)));
  11.  
     
  12.  
    System.out.println("位置:"+find(a,8));
  13.  
    }
  14.  
     
  15.  
    /**
  16.  
    * 冒泡法
  17.  
    * @param a 排序数组
  18.  
    * @return 计算完的数组
  19.  
    */
  20.  
    public static int [] bubble(int a[]){
  21.  
    for(int i=0;i<a.length-1;i++){
  22.  
    for(int j=0;j<a.length-i-1;j++){
  23.  
    if(a[j]<a[j+1]){
  24.  
    int temp=a[j];
  25.  
    a[j]=a[j+1];
  26.  
    a[j+1]=temp;
  27.  
    }
  28.  
    }
  29.  
    }
  30.  
    return a;
  31.  
    }
  32.  
     
  33.  
    /**
  34.  
    * 选择排序法 优于冒泡法
  35.  
    * @param a 排序数组
  36.  
    * @return 计算完的数组
  37.  
    */
  38.  
     
  39.  
    public static int [] select(int a[]){
  40.  
    for(int i=0;i<a.length-1;i++){
  41.  
    int min=i;
  42.  
    for(int j=i+1;j<a.length;j++){
  43.  
    if(a[min]>a[j]){
  44.  
    min=j;
  45.  
    }
  46.  
    }
  47.  
    if(min!=i){
  48.  
    int temp=a[i];
  49.  
    a[i]=a[min];
  50.  
    a[min]=temp;
  51.  
    }
  52.  
    }
  53.  
    return a;
  54.  
    }
  55.  
     
  56.  
    /**
  57.  
    * 插入排序法 优于前两种
  58.  
    * @param a 排序数组
  59.  
    * @return 计算完的数组
  60.  
    */
  61.  
    public static int [] insert(int a[]){
  62.  
    int compare;
  63.  
    for(int mark=1;mark<a.length;mark++){
  64.  
    int temp =a[mark];
  65.  
    compare=mark;
  66.  
    while(compare>0&&a[compare-1]>temp){
  67.  
    a[compare]=a[compare-1];
  68.  
    compare--;
  69.  
    }
  70.  
    a[compare]=temp;
  71.  
    }
  72.  
    return a;
  73.  
    }
  74.  
     
  75.  
    /**
  76.  
    * 二分法查找,前提是数组已经有序 小到大的
  77.  
    * @param a 由小到大的有序数组
  78.  
    * @param value 需要找的值
  79.  
    * @return
  80.  
    */
  81.  
    public static int find(int a[],int value){
  82.  
    int start=0;
  83.  
    int end=a.length-1;
  84.  
    while(end>=start){
  85.  
    int index =(start + end )/2;
  86.  
    if(a[index]==value){
  87.  
    return index;
  88.  
    }else if(a[index]>value){
  89.  
    end=index-1;
  90.  
    }else{
  91.  
    start = index+1;
  92.  
    }
  93.  
    }
  94.  
    return a.length;
  95.  
    }
  96.  
     
  97.  
    }
  98.  

 

分享到:
评论

相关推荐

    几个推荐算法的java实现

    本项目提供了一些推荐算法的Java实现,包括slopeone、SVD(奇异值分解)以及基于物品邻接的SVD(ItemNeighborSVD)。下面我们将详细探讨这些算法及其在Java中的实现。 1. **slopeone**: - Slope One是一种简单的...

    Java实现kNN算法

    Java实现k近邻(kNN)算法是机器学习领域中一种基础且重要的算法,主要用于分类和回归问题。kNN算法基于实例的学习,它不预先建立任何模型,而是将新数据分类或预测为与其最近的k个训练样本中最常见的类别。在这个讨论...

    用Java实现几种常见的排序算法

    根据提供的文件信息,本文将详细介绍如何使用Java语言来实现几种常见的排序算法,包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。这些排序算法在...

    java编写的几种搜索算法

    本篇文章将深入探讨在Java中实现的几种常见的搜索算法,包括二分搜索和线性搜索,这些都是数据结构和算法学习的重要部分。 首先,我们来理解这两种搜索算法的基本概念: 1. **线性搜索**(Linear Search):这是最...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    Java几种排序算法

    本文将详细介绍Java中常见的几种排序算法,包括冒泡排序、快速排序以及选择排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它的主要思想是通过不断比较相邻元素并交换位置,使得较大的元素逐渐“浮”到...

    Java实现逻辑回归算法(LogRegression)对iris数据集分类

    **Java实现逻辑回归算法(Logistic Regression)对Iris数据集分类** 在机器学习领域,逻辑回归是一种广泛应用的分类算法,尤其适用于二分类问题。它的基本思想是通过拟合一个Sigmoid函数来预测事件发生的概率。这里,...

    simhash-java Java实现simhash算法的简单实现.zip

    在Java环境中实现SimHash,需要注意以下几点: - **选择合适的库**:Java有许多现成的库可以帮助处理文本分词、向量化和哈希计算,如Apache Lucene用于分词,Guava库提供哈希函数,而NumPy的Java版本(如ND4J)可以...

    用java实现的BP算法

    在Java实现BP算法时,需要注意以下几点: - **数据预处理**:输入数据可能需要归一化或标准化,以便在网络中更有效地处理。 - **激活函数**:选择合适的激活函数,如sigmoid、tanh或ReLU,影响神经元的输出和网络的...

    用java实现HS和LCR选举算法

    在Java中实现这两种算法,我们需要关注以下几个关键点: 1. **消息通信**:可以使用Java的Socket编程实现节点间的网络通信,或者利用RMI(远程方法调用)或Apache ZooKeeper等框架来简化通信过程。 2. **ID管理**...

    java几个算法实现

    本主题聚焦于“Java几个算法实现”,这是一份针对初学者的资源,旨在帮助他们入门算法学习并理解其基本概念。算法是解决问题或执行任务的精确步骤集合,对于任何程序员来说,掌握算法都是提升编程能力的关键。 1. *...

    java实现基于SMO算法的SVM分类器

    在Java环境下,我们可以使用SMO算法来构建SVM分类器,这个过程涉及以下几个关键知识点: 1. **SVM基础理论**: - SVM是一种最大边距分类器,通过找到一个超平面最大化两个类别的间隔来构建决策边界。 - 支持向量...

    java实现Apriori算法

    在Java中实现Apriori算法,我们需要理解并掌握以下几个关键知识点: 1. **关联规则**:关联规则是数据挖掘中的一种重要概念,通常表示为“如果A发生,那么B发生的概率会增加”。这里的A和B称为项集,它们是数据集中...

    AES算法Java实现

    在Java中实现AES算法,你需要了解以下几个关键知识点: 1. **AES算法的基本原理**:AES是一种分组密码,它将明文分为128位的数据块进行处理。通过多个轮的替换、置换、线性变换等操作,使得原始数据变得难以破解。...

    java编写的几种排序算法

    本文将深入探讨在Java中实现的几种常见排序算法:冒泡排序、快速排序以及堆排序。 1. **冒泡排序(Bubble Sort)** 冒泡排序是最简单的排序算法之一,通过重复遍历数组,比较相邻元素并交换位置,直到没有任何一对...

    Java,用java实现的所有算法.zip

    在这个名为"Java,用java实现的所有算法.zip"的压缩包中,很显然,它包含了一个Java项目,专注于实现各种算法。这样的资源对于学习和理解数据结构与算法在实际编程中的应用非常有价值。 首先,让我们探讨一下Java...

    java算法基础题

    根据提供的文件信息,我们可以从中提炼出以下几...以上就是从给定文件中提取出来的几个重要的Java算法知识点及其相关实现细节。这些基础知识对于初学者而言是非常有价值的练习题目,有助于提高编程技能和算法理解能力。

    这是java实现机器学习算法中的k近邻算法

    总结起来,这个Java实现的K近邻算法是一个基础但重要的机器学习工具,它能用于分类问题,并通过自定义距离度量和调整K值来适应不同的数据集和应用场景。在处理小规模数据集时,KNN算法效果良好,但在大规模数据集上...

    DES算法java实现

    本文章详细介绍了一种利用Java语言实现的DES(Data Encryption Standard,数据加密标准)算法。DES是一种广泛使用的对称加密算法,主要用于保护敏感信息的安全传输。通过该Java实现,用户可以更好地理解DES的工作...

Global site tag (gtag.js) - Google Analytics