`
hanjiangit
  • 浏览: 187176 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

基本排序

阅读更多

package zyio;

public class TestMath
{
 /**插入排序
  * 插入排序算法策略:排序值列中的前2个值,并在必要时交换它们。
  * 在相对于前2个值(有序的)的适当位置插入值列的第三个值。
  * 然后,在相对于前3个值(有序的)的适当位置插入值列的第4个值。
  * 每进行一次插入操作,有序子集中的数值个数将递增1。重复该过程,直至值列中的所有值都按照次序排列为止。
  * 插入过程需要移动数组中的其他值,为插入的元素腾出存储空间。
  * */
 public static int[] insertSort(int[] arrays)
 {
  int[] insertArray = arrays;
  for (int i = 1; i < insertArray.length; i++)
  {
   for (int j = i; j > 0 && insertArray[j] < insertArray[j - 1]; j--)
   {
    int temp = insertArray[j - 1];
    insertArray[j - 1] = insertArray[j];
    insertArray[j] = temp;
   }
  }
  return insertArray;
 }
 
 /**冒泡排序
  * 冒泡排序算法的一般性策略:搜索整个值列,比较相邻元素,
  * 如果两者的相对次序不对,则交换它们,其结果是最大值“想水泡一样”移动到值列的最后一个位置上,
  * 这也是它在最终完成排序的值列中合适的位置。然后再次搜索值列,将第二大的值移动至倒数第二个位置上,
  * 重复该过程,直至将所有元素移动到正确的位置上。
  * */
 public static int[] basicSort(int[] arrays)
 {
  int[] basicArray = arrays;
  for(int i=0;i<basicArray.length - 1;i++)
  {
   for(int j=i + 1;j<basicArray.length;j++)
   {
    if(basicArray[j] < basicArray[i])
    {
     int temp = basicArray[j];
     basicArray[j] = basicArray[i];
     basicArray[i] = temp;
    }
   }
  }
  return basicArray;
 }
 
 /**
  * 选择排序
  * 选择排序算法的一般策略:搜索整个值列,以找到最小值。
  * 将该值与值列中第一个位置上的值进行交换。搜索剩下的值列(第一个除外),以找到其中的最小值,
  * 然后将其与值列中第二个位置上的值进行交换。对值列中的每个位置重复该过程。在算法结束时,就完成了对值列的排序。
  * @param arrays
  * @return
  */
 public static int[] selectSort(int[] arrays)
 {
  int[] selectArray = arrays;
  for(int i=0;i<selectArray.length-1;i++)
  {
   int index = i;
   for(int j=i+1;j<selectArray.length;j++)
   {
    if(selectArray[j] < selectArray[i])
    {
     index = j;
    }
   }
   if(index != i)
   {
    int temp = selectArray[i];
    selectArray[i] = selectArray[index];
    selectArray[index] = temp;
   }
  }
  return selectArray;
 }

 /**
  * 快速排序法
  * (以整数类型为例) 快速排序的思想是,对于输入,按照以下二个步骤进行排序 对于数组a[p:r]
  * 1)分解(其实包括合并过程):以a[p]为基准将数组分成三段a[p:q-1]、a[q]、a[q+1:r]
  * 使得a[p:q-1]中的任意元素都小于等于a[q],a[q+1:r]中的任意元素都大于等于a[q].
  * 2)递归求解:通过递归调用快速排序,分别完成a[p:q-1]和a[q+1:r]的排序。
  * @param Array 数组,需要排序的集合
  * @param p 数组的开始下标
  * @param r 数组的结束下标
  */
 public static int[] quickSort(int[] arrays,int p,int r)
 {
  int[] quickArray = arrays;
  if(r > p)
  {
   
  }
  
  return quickArray;
 }
 
 public static void main(String[] args)
 {
   int[] c={4,9,23,1,45,27,5,2};
  
   int[] insertArray = insertSort(c);
   for(int i=0;i<insertArray.length;i++)
   {
    System.out.println("insertArray["+i+"] = "+insertArray[i]);
   }
   System.out.println();
  
   int[] basicArray = basicSort(c);
   for(int i=0;i<basicArray.length;i++)
   {
    System.out.println("basicArray["+i+"] = "+basicArray[i]);
   }
   System.out.println();
  
   int[] selectArray = selectSort(c);
   for(int i=0;i<selectArray.length;i++)
   {
    System.out.println("selectArray["+i+"] = "+selectArray[i]);
   }
   System.out.println();
 }
}

分享到:
评论

相关推荐

    8种基本排序算法2015上

    根据提供的信息,我们可以总结出以下关于八种基本排序算法中的两种——冒泡排序(Bubble Sort)与插入排序(Insert Sort)的知识点。 ### 冒泡排序(Bubble Sort) #### 定义 冒泡排序是一种简单的排序算法。它...

    7种基本排序算法

    本文将详细介绍七种基本排序算法,包括插入排序、快速排序、希尔排序、归并排序、选择排序、冒泡排序(以及双向冒泡排序)和堆排序,这些都是用C语言实现的。对于初学者来说,理解和掌握这些算法有助于提升编程技能...

    8种基本排序

    8种基本排序,最int数组进行排序,具体排序算法:https://blog.csdn.net/github_37412255/article/details/54731005

    基本排序气泡排序插入排序快速排序双通道快速排序三通道快速排序堆排序.zip

    基本排序算法是计算机编程和算法设计中的重要组成部分,它们是数据结构和算法课程的基础内容,对于理解更复杂的算法和数据结构至关重要。在本压缩包中,涉及了多种排序算法,包括冒泡排序、插入排序、快速排序及其...

    基本排序算法(c语言版)

    本文将深入探讨在C语言中实现的几种基本排序算法,包括冒泡排序、插入排序、选择排序、快速排序、希尔排序以及归并排序。这些算法各有优劣,适用于不同的场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的...

    c#实现基本排序算法

    本文将详细探讨C#语言中实现的几种基本排序算法,包括冒泡排序、鸡尾酒排序(双向冒泡)、选择排序、插入排序、希尔排序、堆排序和归并排序。 首先,我们来看**冒泡排序**,它是最简单的排序算法之一。通过不断交换...

    8中基本排序

    "8种基本排序"通常指的是计算机科学中最常见的排序算法,这些算法是任何程序员应该熟悉的基础知识。以下是这8种排序方法的详细说明: 1. 冒泡排序(Bubble Sort): 冒泡排序是最简单的排序算法之一,通过重复遍历...

    JAVA四种基本排序的总结

    了解和掌握这些基本排序算法,对于理解更高级的排序算法,如归并排序、堆排序以及各种基于比较的排序算法的理论基础都有很大的帮助。在实际开发中,根据数据规模、是否需要稳定性、内存限制等因素,选择合适的排序...

    基本排序算的实现

    本教程将探讨几种常见的基本排序算法,这些算法都是用C或C++语言实现的。以下是每种算法的详细介绍: 1. **冒泡排序(Bubble Sort)** 冒泡排序是一种简单直观的排序算法。它重复地遍历待排序的数列,一次比较两个...

    基本排序方法程序(快速、冒泡、选择)

    在计算机科学领域,排序是数据处理的基本...总的来说,掌握这些基本排序算法对于提升编程能力,特别是算法设计和分析能力至关重要。通过阅读和运行这些程序,你可以加深对排序算法的理解,并能够运用到实际项目中去。

    数据结构,基本排序_data.zip

    基本排序是指对数据集进行排序的算法,这些算法能够将数据按照一定的顺序排列,常见的基本排序方法包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。 冒泡排序是一种简单的排序算法,它重复地遍历要排序的...

    java实现的八种基本排序算法(有注释)

    以下是标题"java实现的八种基本排序算法(有注释)"所涵盖的八种排序算法的详细说明: 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换位置,使最大或最小的元素逐渐...

    java基本排序算法实现

    除此之外,其他基本排序算法如插入排序、希尔排序、堆排序和冒泡排序也是常见的排序算法: - **插入排序**:将数组分为已排序区和未排序区,每次从未排序区取出一个元素,插入到已排序区的正确位置。 - **希尔排序*...

    基本排序讲PPT学习教案.pptx

    《基本排序算法详解》 排序,是计算机科学中不可或缺的一部分,它涉及到数据处理和数据分析的诸多领域。排序的目的是将无序的数据序列整理成按特定规则(通常是非递减顺序)排列的有序序列。本文将深入探讨几种基本...

    三大基本排序思想.txt

    根据给定文件的信息,我们可以总结出关于三种基本排序算法的知识点。这三种排序算法分别是冒泡排序、选择排序以及插入排序。接下来将详细介绍这三种排序方法的原理、特点及应用场景。 ### 冒泡排序(Bubble Sort) ...

    8中基本排序方法

    以下是关于"8种基本排序方法"的详细说明,包括冒泡排序、快速排序、直接排序(简单选择排序)、归并排序、希尔排序、堆排序以及基数排序。 1. **冒泡排序**:这是一种简单的交换排序,通过重复遍历数组,比较相邻...

    基本排序算法C语言实现

    本资源“基本排序算法C语言实现”提供了一系列经典的排序算法的C语言实现,帮助开发者深入理解这些算法的工作原理并能实际运用到项目中。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,它重复地遍历要排序的...

    基本排序算法综合实验.doc

    本实验旨在通过实践操作,帮助学生深入理解并比较各种基本排序算法的性能和特点。 【排序算法种类】 1. 直接插入排序:直接插入排序是一种简单的排序方法,分为有监视哨和无监视哨两种。监视哨用于避免不必要的...

    基于Java实现各种基本排序及简单优化

    本文将详细解析标题“基于Java实现各种基本排序及简单优化”所涉及的知识点,并深入探讨每种排序算法的工作原理、实现方式以及可能的优化策略。 首先,我们来逐一分析这六种基本的排序算法: 1. **冒泡排序**:这...

    基本排序法C/C++实现,VS调试

    本文将详细讨论C/C++语言实现的基本排序算法,并结合Visual Studio(VS)2008的调试环境进行实践。 首先,我们要理解排序的定义:排序是将一组数据按照特定的顺序排列的过程。在计算机科学中,常见的排序标准有升序...

Global site tag (gtag.js) - Google Analytics