在实现数组元素排序时,排序的算法有很多,例如冒泡排序法,选择排序法,插入排序法以及快速排序法,来介绍插入排序和快速排序的具体实现吧
插入排序法
插入排序法德基本思路是:将要排序的数组分成两部分,每次从后面的数组部分中取出索引最小的数组元素,插入到前面数组的适当位置中。通常在数组开始排序时,将数组的第一个元素作为一组,后面的所有元素被当成另一组。插入排序法德实现代码如下:
public class insertSort{
public static void main(String args[]){
int arr[]={1,-33,-55,-77,88,91,-232,323,2,3,4,12,2,22,222,-12,-45,-56,00};
charu(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
public static int[] charu(int[] arr){
for(int i=1;i<arr.length;i++){
int tmp=arr[i];
int j=i-1;
while(tmp<arr[j]){
arr[j+1]=arr[j];
j--;
if(j==-1){
break;
}
}
arr[j+1]=tmp;
}
return arr;
}
}
快速排序法
快速排序法是当今被认为最好的排序算法之一,它的基本思路是:讲一个大的 数组的排序问题,分解成2个小的数组的排序,而将每个小的数组的排序又可以继续分解成更小的2个数组,这样一直递归分解下去, 直到数组的大小为最大为2。快速排序的实现代码如下:
public class quickSort{
public static void main(String args[]){
int[] array={12,32,51,9,2,5,4,43435,7678,899,90,1111255557,653,1,23,2,4,4,4};
kuaisu(array);
for(int i=0;i<array.length;i++)
System.out.println(array[i]);
}
public static int[] kuaisu(int[] array){
return quicksort(array,0,array.length-1);
}
public static int[] quicksort(int[] arr,int left,int right){
int t;
if(left<right){
int s=arr[left];
int i=left;
int j=right+1;
while(true){
while(i+1<arr.length&&arr[++i]<s);
while(j-1>-1&&arr[--j]>s);
if(i>=j){
break;
}else{
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
arr[left]=arr[j];
arr[j]=s;
quicksort(arr,left,j-1);
quicksort(arr,j+1,right);
}
return arr;
}
}
网上流传着一个关于比较冒泡排序和快速排序的动画视频,感兴趣的可以看一下。
http://www.tudou.com/programs/view/htKY1-Rj9ZE/
现在给自己留下一个问题:从文件中读取数据,并将其存入到数组中,排序好之后再读入到文件中。
分享到:
相关推荐
本资源“易语言数组排序算法集合”提供了多种常见的排序算法的源代码实现,对于学习易语言以及算法理解都有极大的帮助。下面将详细介绍其中提及的几种排序算法。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...
数组排序是计算机科学中基础且重要的概念,尤其是在数据处理和算法设计中不可或缺。数组是一种线性数据结构,其中元素按照特定顺序存储。排序数组是指将数组中的元素按特定规则(通常为升序或降序)重新排列的过程。...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
这里我们将深入探讨标题和描述中提到的六种排序算法:快速排序、归并排序、插入排序、冒泡排序、选择排序以及堆排序。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是一种高效的分治算法。快速排序的基本思想是...
其他常见的排序算法还包括冒泡排序、插入排序、快速排序、归并排序等,每种都有其适用的场景和优缺点。在实际编程中,根据数据规模、稳定性、空间复杂度等因素选择合适的排序算法至关重要。对于C语言初学者,理解并...
在编程领域,数组和排序算法是基础且至关重要的概念,特别是在Java编程中。数组是一种数据结构,它允许我们在内存中存储相同类型的数据项,并通过索引来访问这些元素。理解数组和掌握高效的排序算法对于编写高性能的...
常见的排序算法有冒泡排序、选择排序、插入排序、快速排序等。易语言中可以使用内置的“排序数组”命令,但可能需要提供比较函数来处理自定义数据类型。 ```易语言 .子程序 比较产品, 产品, 产品 如果 第1个参数....
这个程序的头文件中包含四种排序方法:泡沫排序法(bubble),插入排序法(insertion),快速排序法(quick)和选择排序法(selection)。头文件中还使用了模板技术,以便可以同时实现几种类型的排序算法。 ...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
【Java 数组排序算法详解】 在 Java 中,有多种排序算法可以用来对数组进行排序,这些算法根据不同的工作原理和效率被分为不同的类别。本文将详细介绍以下几种排序算法:插入排序、交换排序、选择排序、归并排序...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
该文档涵盖了数组排序的基本概念,包括如何实现各种排序算法,如冒泡排序、选择排序、插入排序、归并排序和快速排序。此外,文档还为每个排序算法提供了详细的代码示例和实现细节。 该文档还涵盖了高级主题,如如何...
排序算法有很多种,如冒泡排序、选择排序、插入排序、快速排序、归并排序等。在这个场景下,最简单的可能是使用插入排序。插入排序的工作原理是将数组分为已排序和未排序两部分,每次从未排序部分取出最小(或最大)...
常见的内部排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等。每种算法都有其适用场景和优缺点。例如,冒泡排序简单但效率较低,适用于小规模数据;快速排序平均效率高,但最坏情况下效率会...
本文将深入探讨几种常见的数组排序算法,包括插入排序、交换排序、选择排序和归并排序,以及基数排序。这些算法在不同的场景下有不同的效率表现,选择合适的排序方法对程序性能有着显著影响。 1. 插入排序: 插入...
以上就是Java中常用的几种数组排序算法及其实现。每种排序算法都有其特定的适用场景和性能特点,理解并掌握这些排序算法有助于我们在实际编程中选择合适的排序方法,提高程序的效率。在实际应用中,还可以考虑使用...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治策略,通过选取一个“基准”元素,将数组分为两个子数组,使得一个子数组的所有元素都小于或等于基准,另一个子数组...
《数组与排序算法:从基础到进阶》是一本全面深入探讨数组基础知识和各种排序算法的实用指南。...高级技巧:探讨希尔排序、归并排序、快速排序等高级排序算法,以及它们在实际应用中的优势和局限。
排序算法是计算机科学中的核心部分,常见的有冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等。这些算法各有优缺点,适用于不同的场景。例如,冒泡排序简单但效率较低,适合小规模数据;而快速排序和...