按照排序算法的稳定性分:
稳定排序:在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变
不稳定排序:经过排序后,若具有相同关键字的记录之间的相对次序发生变化
按照是否涉及数据的内、外存交换分:
内排序: 适用于记录个数不很多的小文件
外排序: 适用于记录个数太多,不能一次将其全部记录放入内存的大文件
按照策略分:排序分为 插入排序、交换排序、选择排序、归并排序、分配排序
这次重新学习的目的,就是清晰理解算法的思想,并按照不同策略进行相关算法学习,例子代码使用java书写,先加了个油!
插入排序:
1.直接插入排序
思想:将列表分为两个逻辑部分,分别是无序和有序部分。
例如数据{1,4,2,6,9,8}
1. 拿到无序序列表的第一个元素,并将其插入有序列表,由于有序列表为空,所以不用判断可直接插入。
{1} {4,2,6,9,8}
2. 拿到无序列的第一个元素,将其插入有序列表,迭代有序列表,将新的元素x插入到满足a[n+1]>x>a[n]的地方
{1,4} {2,6,9,8}
3.以此类推
{1,2,4} {6,9,8}
4.以此类推
{1,2,4,6} {9,8}
5.以此类推
{1,2,4,6,9} {8}
6.以此类推
{1,2,4,6,8,9} {}
java 代码实现:
public class InsertSort {
public static int insertsort(int[] inta){
for(int i=0;i<inta.length;i++){
int temp = inta[i];
int j=i-1;
while(j>=0&&temp<inta[j]){
inta[j+1]=inta[j];
j--;
}
inta[j+1]=temp;
}
return 0;
}
public static void main(String[] args) {
int[] a = {1,4,2,6,9,8};
for(int k=0;k<a.length;k++){
System.out.print(""+a[k]+",");
}
System.out.println();
insertsort(a);
for(int k=0;k<a.length;k++){
System.out.print(""+a[k]+",");
}
}
}
分享到:
相关推荐
排序算法如冒泡排序、插入排序、选择排序、快速排序、归并排序等,它们在Java中都有相应的实现方式。查找算法如线性查找、二分查找、哈希查找等,是提高数据访问效率的关键。 最后,数据结构的学习离不开实际应用。...
本主题将深入探讨Java语言实现的六种常见排序算法:冒泡排序、选择排序、插入排序、希尔排序、快速排序以及堆排序。 首先,冒泡排序是一种简单直观的排序算法。它通过不断交换相邻的逆序元素,使得每一轮遍历后,...
这篇博客"java源码中的数据结构 - 插入排序,快速排序 (附可供调试的源码)"聚焦于两种经典的排序算法:插入排序和快速排序。这些算法在实际编程中广泛应用,尤其在处理大量数据时,对性能优化有着显著的影响。 首先...
【Java基础复习笔记10数据结构-排序二叉树】 排序二叉树是一种特殊类型的二叉树,其每个节点的数据值满足以下特性:对于任意节点,其左子树中的所有节点值都小于该节点,而右子树中的所有节点值都大于或等于该节点...
### Java基础数据结构—排序算法 #### 排序的重要性与应用场景 排序算法是计算机科学中的一个核心主题,它不仅在理论研究中占有重要的地位,也是实际应用中不可或缺的一部分。无论是在数据库管理系统的查询优化,...
【数据结构与排序算法在Java中的应用】 在计算机科学中,数据结构是组织和存储数据的方式,而排序算法则是对这些数据进行排列的策略。在Java编程中,掌握各种排序算法对于提高程序效率至关重要。本篇文章将深入探讨...
在Java编程领域,数据结构是不可或缺的基础知识,它关乎到程序的效率和性能。本学习资料包"java数据结构--学习"聚焦于如何在Java环境下理解和应用各种数据结构,旨在提升开发者的技术水平,使其能够编写出更加高效和...
### JAVA数据结构与基础知识详解 #### 一、Java与面向对象程序设计 Java是一种广泛使用的高级编程语言,其核心特点之一就是支持面向对象编程(OOP)。面向对象编程通过将数据和行为封装在对象中来简化软件开发和...
### Java 实现数据结构常见排序算法及详解 #### 排序算法概述 排序算法是计算机科学中的基础概念之一,主要用于将一系列数据按照特定规则进行排列。根据数据处理方式的不同,排序算法大致分为两大类:比较排序与非...
在Java面试中,数据结构是不可或缺的一个重要环节,因为它直接影响到程序的效率和设计质量。本资料包"面试-Java一些常见面试题+题解之数据结构-DataStructure.zip"聚焦于Java中的数据结构,旨在帮助求职者更好地准备...
链表是一种常用的数据结构,它在计算机科学中扮演着重要的角色。...通过深入学习这些链表的Java实现,你可以更好地理解数据结构的内部工作原理,并将其应用到实际项目中,提升代码的效率和灵活性。
7. 排序算法:包括冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等,它们对数组或其他线性结构进行排序,Java提供了`Arrays.sort()`方法对数组进行排序。 课后习题部分可能涵盖上述数据结构的理论问题...
《数据结构(Java版本)》这本书正是为此目的而编写,旨在将理论与实际编程相结合,通过Java语言来实现各种经典的数据结构。 首先,书中的基础部分会介绍数据结构的基本概念,如数组、链表、栈和队列。数组是最基本...
7. **排序算法**:快速排序、归并排序、冒泡排序、选择排序、插入排序、堆排序等都是数据结构中常见的排序算法,Java的Arrays类提供了多种排序方法。 8. **递归与分治**:递归是解决问题的一种方法,通过自我调用来...
在给定的`Sort`文件中,可能包含了实现直接插入排序的源代码,通常使用C、C++、Java或Python等编程语言。这些程序会包含一个循环结构,遍历数组并进行比较、移动和插入操作。通过阅读和理解这些代码,可以加深对直接...
在编程领域,特别是Java开发中,数据结构和排序算法是至关重要的基础知识。这些算法和数据结构的高效使用直接影响到程序的性能和可读性。在这个"JAVA数据结构排序动态演示"项目中,开发者通过实现一系列经典的排序...
在Java数据结构的学习中,排序算法的性能比较是一项重要的实践任务。这个大作业的主要目标是对多种排序算法,包括直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序和归并排序,进行性能分析。下面...
基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,...