`
jzhua2006
  • 浏览: 308380 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JAVA 数据结构之排序算法(一)

阅读更多
最近在补习数据结构方面的内容,作为一个计算机专业人士,我们还是很有必要把数据结构学习好,特别是当自己很迷茫时,都不知道自己的提升空间在哪里,总是止步不前。还有就是作为web开发人员,感觉自己老是在html/css/js/ajax/struts等等徘徊时,做来做去总是这些重复性的东西。这个时候我们要提升自己的话,可以从多个方面去探讨。
一:项目管理
二:高级程序员
三:系统架构师

对于刚毕业不久的我来讲,而显然我自己是向第二个方向发展,而在这个方向上就需要将自己的编码、设计、分析等综合提高。我之所以将编码方法第一个,主要是变成才是我们的主要工作。

好了,话就不多说了!还是进入正题吧!由于最近工作非常忙,我利用晚上的时间开始学习了排序算法,虽然坛子了高手如云,我还是要把这些给列出来,毕竟这是我自己的理解编写的几个算法,同时尽可能多的多重角度去,开阔自己的思维,这里我只是列出主要代码:

一:冒泡算法(参数是List)

//方法一:从前向后排序,即最后一个最大或最小
/*
for(int i=0; i<data.size(); i++)
{
for(int j = 0; j < data.size()-1-i; j++)
{
if(data.get(j) > data.get(j+1))
{
int temp;
temp = data.get(j);
data.set(j, data.get(j+1));
data.set(j+1, temp);
}
}
}
*/

//方法二:从后向前排序,即最前一个最大或最小
for(int i = 0; i < data.size(); i++)
{
for(int j = i; j < data.size() ; j++)
{
if(data.get(i) < data.get(j))
{
int temp;
temp = data.get(i);
data.set(i, data.get(j));
data.set(j, temp);
}
}
}

二:选择算法(参数是List)

        public static void select(List<Integer> data)
{
int min = 0;
for(int i = 0; i < data.size(); i++)
{
min = getMinIndex(i,data.size(),data);
swap(min,i,data);
}
}

//获得每次遍历最小值索引
public static int getMinIndex(int first,int last,List<Integer> data)
{
int min = first;

for(int j = first + 1; j < last ; j++)
{
if(data.get(j) < data.get(min))
{
min =  j;
}
}

return min;
}

        //交换位置
public static void swap(int min,int first,List<Integer> data)
{
int temp;

temp = data.get(first);
data.set(first, data.get(min));
data.set(min, temp);
}

三:插入算法(参数是List)

        public static void insert(List<Integer> data)
{
int temp = 0;

//用于保存当前位置的前一个位置
int loc = 0;

//默认第一个已经排好序
for(int i = 1; i < data.size(); i++)
{
//即当前位置值小于当前位置的前一个位置的值,则开始交换操作,一直遍历至完成
/*
if(data.get(i) < data.get(i-1))
{
temp = data.get(i);
loc = i;

// 方法一
do
{
data.set(loc,data.get(loc-1));
data.set(loc-1, temp);
loc--;
}
while((loc > 0) && (data.get(loc - 1) > temp));
}
*/

//方法二

temp = data.get(i);

for(int j = i; (j > 0) && (data.get(j-1) > temp); j--,i--)
{
data.set(i,data.get(j-1));
data.set(j-1, temp);
}

}
}
分享到:
评论

相关推荐

    数据结构java版 排序算法

    【数据结构与排序算法在Java中的应用】 在计算机科学中,数据结构是组织和存储数据的方式,而排序算法则是对这些数据进行排列的策略。在Java编程中,掌握各种排序算法对于提高程序效率至关重要。本篇文章将深入探讨...

    Java数据结构和算法.pdf

    资源摘要信息是关于Java数据结构和算法的知识点总结,涵盖了数组、栈与队列、链表、递归、哈希表、高级排序、二叉树、红黑树、堆、带权图等数据结构和算法概念。 一、数组 * 数组是相同类型变量的集合,可以使用...

    java数据结构与算法.pdf

    Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...

    Java数据结构和算法中文第二版_Java数据结构_

    《Java数据结构和算法中文第二版》是一本深入探讨Java编程中数据结构和算法的书籍。数据结构是计算机科学的基础,它涉及到如何有效地组织和存储数据,以便在各种操作下高效地访问和修改。算法则是解决问题的具体步骤...

    java数据结构大作业,排序算法是性能比较

    在Java数据结构的学习中,排序算法的性能比较是一项重要的实践任务。这个大作业的主要目标是对多种排序算法,包括直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序和归并排序,进行性能分析。下面...

    Java数据结构和算法中文第二版

    根据提供的信息,“Java数据结构和算法中文第二版”这本书主要关注的是数据结构与算法的相关内容。下面将基于这些信息,详细介绍数据结构与算法的核心概念、重要性和应用领域,以及在Java编程环境中如何实现这些概念...

    JAVA数据结构排序动态演示

    在这个"JAVA数据结构排序动态演示"项目中,开发者通过实现一系列经典的排序算法并配合动态界面展示,使学习者能直观地理解各种排序算法的工作原理。 首先,我们来详细解析每个排序算法: 1. **直接插入排序(直接...

    Java数据结构和算法(第二版)+源代码+Applets

    本资源包“Java数据结构和算法(第二版)+源代码+Applets”为学习者提供了一个全面且深入的学习平台,涵盖了理论知识、实践代码以及直观的交互式演示。 首先,让我们详细探讨数据结构这一部分。数据结构是组织和存储...

    C、C++、JAVA数据结构与算法电子书

    C、C++和Java都是广泛使用的编程语言,它们在处理数据结构和算法时各有特点。以下是对这三种语言在数据结构与算法方面的一些关键知识点的详细阐述: 1. **数据结构**: - **数组**:基本的数据结构,用于存储同...

    java数据结构和算法

    java 数据结构和算法, 排序算法, 数组,链表,二叉树

    Java数据结构和算法-带书签目录扫描版

    《Java数据结构和算法-带书签目录扫描版》是一本深入探讨Java编程语言中数据结构和算法的书籍。此扫描版特别包含了完整的书签目录,使得读者在电子版阅读时能够快速定位到所需章节,提高了学习和查阅的效率。 在...

    Java数据结构和算法(第二版)+随书源代码+applet小程序

    《Java数据结构和算法(第二版)》是一本专为希望深入理解Java编程中的数据结构与算法的读者设计的书籍。这本书的特点是从基础知识逐步引导读者进入复杂领域,通过结合实际的Applet小程序,使得理论知识变得生动直观。...

    数据结构与算法代码详解JAVA版

    在Java中,我们可以使用各种算法来解决实际问题,例如排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)、查找算法(顺序查找、二分查找、哈希查找)以及图论中的最短路径算法(Dijkstra算法...

    Java数据结构和算法(第二版).zip

    《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和...

    Java 数据结构与算法+源代码 高清版

    这份“Java数据结构与算法+源代码高清版”资源旨在帮助开发者深入理解并掌握这些关键概念。 首先,让我们来探讨数据结构。数据结构是组织和存储数据的方式,它为算法提供了基础。常见的数据结构包括数组、链表、栈...

    java 数据结构及算法讲义

    算法是一系列解决问题的步骤,包括排序算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序)、搜索算法(如线性搜索、二分搜索)、图算法(如深度优先搜索、广度优先搜索)以及动态规划、贪心策略和...

    JAVA数据结构和算法+面试题

    在IT领域,尤其是在Java编程中,数据结构和算法是核心基础,它们对于开发高效、优化的...总之,Java数据结构和算法是开发者必备的技能,通过不断学习和练习,可以提升编程效率和代码质量,为职业发展打下坚实的基础。

Global site tag (gtag.js) - Google Analytics