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();
}
}
分享到:
相关推荐
根据提供的信息,我们可以总结出以下关于八种基本排序算法中的两种——冒泡排序(Bubble Sort)与插入排序(Insert Sort)的知识点。 ### 冒泡排序(Bubble Sort) #### 定义 冒泡排序是一种简单的排序算法。它...
本文将详细介绍七种基本排序算法,包括插入排序、快速排序、希尔排序、归并排序、选择排序、冒泡排序(以及双向冒泡排序)和堆排序,这些都是用C语言实现的。对于初学者来说,理解和掌握这些算法有助于提升编程技能...
8种基本排序,最int数组进行排序,具体排序算法:https://blog.csdn.net/github_37412255/article/details/54731005
基本排序算法是计算机编程和算法设计中的重要组成部分,它们是数据结构和算法课程的基础内容,对于理解更复杂的算法和数据结构至关重要。在本压缩包中,涉及了多种排序算法,包括冒泡排序、插入排序、快速排序及其...
本文将深入探讨在C语言中实现的几种基本排序算法,包括冒泡排序、插入排序、选择排序、快速排序、希尔排序以及归并排序。这些算法各有优劣,适用于不同的场景。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的...
本文将详细探讨C#语言中实现的几种基本排序算法,包括冒泡排序、鸡尾酒排序(双向冒泡)、选择排序、插入排序、希尔排序、堆排序和归并排序。 首先,我们来看**冒泡排序**,它是最简单的排序算法之一。通过不断交换...
"8种基本排序"通常指的是计算机科学中最常见的排序算法,这些算法是任何程序员应该熟悉的基础知识。以下是这8种排序方法的详细说明: 1. 冒泡排序(Bubble Sort): 冒泡排序是最简单的排序算法之一,通过重复遍历...
了解和掌握这些基本排序算法,对于理解更高级的排序算法,如归并排序、堆排序以及各种基于比较的排序算法的理论基础都有很大的帮助。在实际开发中,根据数据规模、是否需要稳定性、内存限制等因素,选择合适的排序...
本教程将探讨几种常见的基本排序算法,这些算法都是用C或C++语言实现的。以下是每种算法的详细介绍: 1. **冒泡排序(Bubble Sort)** 冒泡排序是一种简单直观的排序算法。它重复地遍历待排序的数列,一次比较两个...
在计算机科学领域,排序是数据处理的基本...总的来说,掌握这些基本排序算法对于提升编程能力,特别是算法设计和分析能力至关重要。通过阅读和运行这些程序,你可以加深对排序算法的理解,并能够运用到实际项目中去。
基本排序是指对数据集进行排序的算法,这些算法能够将数据按照一定的顺序排列,常见的基本排序方法包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。 冒泡排序是一种简单的排序算法,它重复地遍历要排序的...
以下是标题"java实现的八种基本排序算法(有注释)"所涵盖的八种排序算法的详细说明: 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换位置,使最大或最小的元素逐渐...
除此之外,其他基本排序算法如插入排序、希尔排序、堆排序和冒泡排序也是常见的排序算法: - **插入排序**:将数组分为已排序区和未排序区,每次从未排序区取出一个元素,插入到已排序区的正确位置。 - **希尔排序*...
《基本排序算法详解》 排序,是计算机科学中不可或缺的一部分,它涉及到数据处理和数据分析的诸多领域。排序的目的是将无序的数据序列整理成按特定规则(通常是非递减顺序)排列的有序序列。本文将深入探讨几种基本...
根据给定文件的信息,我们可以总结出关于三种基本排序算法的知识点。这三种排序算法分别是冒泡排序、选择排序以及插入排序。接下来将详细介绍这三种排序方法的原理、特点及应用场景。 ### 冒泡排序(Bubble Sort) ...
以下是关于"8种基本排序方法"的详细说明,包括冒泡排序、快速排序、直接排序(简单选择排序)、归并排序、希尔排序、堆排序以及基数排序。 1. **冒泡排序**:这是一种简单的交换排序,通过重复遍历数组,比较相邻...
本资源“基本排序算法C语言实现”提供了一系列经典的排序算法的C语言实现,帮助开发者深入理解这些算法的工作原理并能实际运用到项目中。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,它重复地遍历要排序的...
本实验旨在通过实践操作,帮助学生深入理解并比较各种基本排序算法的性能和特点。 【排序算法种类】 1. 直接插入排序:直接插入排序是一种简单的排序方法,分为有监视哨和无监视哨两种。监视哨用于避免不必要的...
本文将详细解析标题“基于Java实现各种基本排序及简单优化”所涉及的知识点,并深入探讨每种排序算法的工作原理、实现方式以及可能的优化策略。 首先,我们来逐一分析这六种基本的排序算法: 1. **冒泡排序**:这...
本文将详细讨论C/C++语言实现的基本排序算法,并结合Visual Studio(VS)2008的调试环境进行实践。 首先,我们要理解排序的定义:排序是将一组数据按照特定的顺序排列的过程。在计算机科学中,常见的排序标准有升序...