关于排序的总结
1.冒泡排序
首先看一段代码
publi class SortArray(){
//定义一个类
public static void main(String[] args){
//创建一个数组,并用方法对这个数组进行赋值
int a[]=creatarray(8);
//调用方法遍历数组
System.out.println("冒泡排序前的情况");
printArray(a);
//创建一个数组来接受冒泡排序后的数组
int b[]=maopao(a);
System.out.println("冒泡排序时的情况");
printlArray(b);
}
//通过方法随机产生一个数组
int a[]=creatarray(10);
//通过方法打印出数组
System.out.println("选择排序前的数组情况");
printArray(a);
int b[]=xuanze(a);
//通过方法打印出来
System.out.println("x选择排序的情况");
printArray(b);
//随机创造数组的方法
public static int[] creatarray(int len){
int base[]=new int[len];
//初始化要排的数组
for(int i=0;i<base.length;i++){
//创建一个随机对象
Random dom=new Random();
base[i]=dom.nextInt(100);
}
return base;
}
//遍历数组并打印出来的方法
public static printArray(int a[]){
if(a==0){return ;
}else for(int i;i<a.length;i++){
System.out.print(" "+a[i]);
}
System.out.println(" ");
}
//冒泡排序的方法过程
public static int[] maopao(int a[]){
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
//这里有几种方法交换两个数
if(a[j]<a[i]){ //找出最小数
int temp=a[j]; //至于这其中算法演示有待同学自己挖掘、
a[j]=a[i]; //可以通过列举一些数组,通过其变化来辨别
a[i]=temp;
}
}
}
return a;
}
//选择排序的方法过程
public static int xuanze(int a[]){
for(int i=0;i<a.length-1;i++){
//设置一个记录最小元素的变量
int lowder=i;
for(int j=i+1;j<a.length;j++){
if(a[lowder]>b[j])
lowder=j;
}
int temp=a[lowder];
a[lowder]=a[i];
a[i]=temp;
}
}
}
看完这段代码,或者是运行完过后。还是不知道冒泡和选择排序的优劣。
仔细看一下二者方法代码,你会发现十分相识。唯一最大区别是,冒泡排序把交换位置几行代 码发在第一个循环体和第二个循环体间。选择排序把那几行代码放在第二个循环体里面。相比算法的时间效率,选择排序高于冒泡排序.
分享到:
相关推荐
标题中的“07-排序1. 排序(25).zip”很可能是一个教学资源包,可能包含了关于排序算法的讲解、示例代码或练习题目,编号"07"可能表示这是系列教程的第七个主题,而"(25)"可能指的是排序的不同方法或特定的课程章节。...
本文将深入探讨标题中提到的"matlab读取文件排序1 10 2出错问题",并提供解决方案。 首先,MATLAB提供了多种排序函数,如`sort`、`sortrows`、`sortcell`等。在大多数情况下,`sort`函数用于一维数组或列向量的排序...
- 文件"数据的排序 1"可能是源码文件的一部分,包含排序功能的核心逻辑或相关配置信息。 4. **实践应用** - 排序不仅可以用于整数、浮点数,还可以处理字符串、自定义结构体等复杂数据类型,易语言提供了丰富的...
数组排序 1、冒泡排序 2、选择排序 3、插入排序 4、生成不同的随机数并排序
VC代码 列表框排序1 (实用代码源).rarVC代码 列表框排序1 (实用代码源).rarVC代码 列表框排序1 (实用代码源).rarVC代码 列表框排序1 (实用代码源).rarVC代码 列表框排序1 (实用代码源).rarVC代码 列表框排序1 (实用...
**暴力美学-排序1** 一、排序算法的基本概念 排序是指将一组数据按照特定的顺序进行排列的过程。在计算机科学中,排序算法是常见的数据处理技术,用于将数组或列表等数据结构中的元素按特定顺序排列。本文主要讨论...
数据结构课件:第10章 排序1插入排序和交换排序.pptx
1. **单元格属性排序**:在设计报表时,选定需要排序的单元格,右键点击选择“单元格属性”,在弹出的对话框中找到“数据”选项卡,可以设置升序或降序的排序方式。这种方式适用于简单的单元格排序。 2. **行组或列...
**直接插入排序**是最基础的版本,其基本思想是假设前i-1个元素已经排序,然后将第i个元素与已排序的元素依次比较,找到合适的位置插入,并将原有元素后移。例如,对于序列21, 25, 49, 25*, 16, 08,直接插入排序会...
例如,图6-1展示了直接插入排序的过程,数据序列在每趟排序后逐渐变得有序,直到所有元素都插入到正确的位置。 直接插入排序的时间复杂度在最好、最坏和平均情况下分别是O(n)、O(n^2)和O(n^2),这是因为最好的情况...
插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 5. **希尔排序(Shell Sort)** 希尔排序是...
7. 简单选择排序:对于顺序表{2,3,1,3',2'},经过1趟排序后变成{1,3,2,3',2'},3趟后可能变成{1,2,2',3,3'}。 8. 稳定排序算法:直接插入排序是稳定的,而快速排序、希尔排序和堆排序都是不稳定的。 9. 某趟结束后...
1. **稳定性**:排序算法的稳定性指的是当两个或多个具有相同关键字的记录在排序后,它们的相对位置是否保持不变。例如,如果在排序前,记录A出现在记录B之前,并且它们的关键字相等,在稳定排序后,记录A仍然会出现...
插入排序是原地排序算法,它只需要一个额外的空间来存储当前处理的元素,因此空间复杂度为O(1)。 插入排序的特点和适用场景: - 插入排序在小规模或者接近有序的数组中表现优秀,效率较高。 - 对于大规模或者无序的...
插入排序的空间复杂度较低,因为它是一种原地排序算法,不需要额外的存储空间,空间复杂度为O(1)。 插入排序在实际应用中也有一些变种,例如二分插入排序,它在寻找插入位置时采用了二分查找,从而降低了比较次数,...
- **冒泡排序1**:基本版本,通过双重循环完成排序。 - **冒泡排序2**:增加了提前结束排序的条件,提高了效率。 - **冒泡排序3**:进一步优化,记录最后一次交换的位置以减少不必要的比较。 **2. 直接插入排序** ...
1)比较范围:直接插入排序、冒泡法排序、简单选择排序、快速排序1(自己实现)、快速排序2(调用STL)、归并排序。 2)比较指标:a)关键字操作次数(比较次数和移动次数之和),b)排序时间。每个指标采用多次重复...
排序是计算机科学中一个至关重要的概念,特别是在数据结构和算法领域。它涉及到将一组无序的数据按照特定规则(通常是升序或降序)重新排列。排序不仅在日常生活中有着广泛的应用,例如整理书籍、列表等,而且在...
排序的概述 插入排序:直接插入排序,折半插入排序,希尔排序