一.排序方法
- 被排列的数组data[0...n],选定当前位置i=0作为最小值下标position;在data[i+1...n]区间每个元素与data[position]比较,记录新position,最后交换data[i]和data[position]。这样最小的元素就到了当前位置了。
- 当前位置i+1,重复1...
二.动画演示
http://student.zjzk.cn/course_ware/data_structure/web/flashhtml/zhijiexuanze.htm
三.Java代码
public static int[] selectSort(int[] data) {
int temp = 0;
int position = 0;
int j = 0;
for (int i = 0; i < data.length - 1; i++) { //i当前位置
position = i; //position最小下标
j = i + 1;
for (; j < data.length; j++) { //j从此区间选取最小下标
if (data[j] < data[position]) {
position = j;
}
}
if (position != i) {
temp = data[i];
data[i] = data[position];
data[position] = temp;
}
}
return data;
}
四.时间复杂度和稳定性
- 最好时间复杂度
- 若文件的初始状态是正序的,所需的关键字比较次数C和记录移动次数M。
- Cmin=n(n-1)/2=0(n2)
- Mmin=0
- 直接选择排序最好的时间复杂度为O(n2)
- 最坏时间复杂度
- 若初始文件是反序的,所需的关键字比较次数C和记录移动次数M。
- Cmax=n(n-1)/2=O(n2)
- Mmax=3(n-1)=O(n)
- 直接选择排序的最坏时间复杂度为O(n2)
- 平均时间复杂度
- O(n2)
- 直接选择排序是就地排序,它是不稳定的。反例[2,2,1] 。
分享到:
相关推荐
数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数排序数据结构学习笔记排序算法:基数...
《数据结构算法与应用-C++语言描述》这本书,由Sahni著,旨在帮助读者深入理解这些核心概念,并通过C++实践来提升技能。 本书可能涵盖了以下几个主要的知识点: 1. **基础数据结构**:包括数组、链表、栈、队列、...
在编程领域,数据结构与算法是核心组成部分,它们直接影响到程序的效率和性能。Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点...
3. **排序与查找算法**:排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序)和查找算法(如线性查找、二分查找、哈希查找)是算法的基础。书中会详细分析每种算法的时间复杂度和空间复杂度,...
总结来说,"数据结构与算法学习资料"是计算机科学的核心组成部分,涵盖了各种数据组织方式和解决问题的方法。通过深入学习,我们可以更好地理解和解决实际问题,提升编程技能,为未来的软件开发和系统设计打下坚实...
《数据结构与算法分析:C语言描述》曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评,已被世界500余所大学选作教材。...
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序更接近硬件,性能更优。本资源"数据结构与算法分析--C语言描述"是针对数据...
数据结构与算法是计算机科学的基础,对于任何想要深入理解编程和优化程序性能的人来说,都是必不可少的知识领域。数据结构是组织和存储数据的方式,而算法则是解决问题的步骤或指令集。以下是一些关于数据结构和算法...
JS 数据结构与算法.pdf 本书主要介绍了 JavaScript 语言的基础知识,包括数据结构和算法。以下是该书的详细知识点: 一、JavaScript 基础知识 * 变量和数据类型 * 运算符和控制结构 * 函数和对象 * 数组和字符串 ...
在“恋上数据结构与算法第二季”的课件中,你将通过实际案例学习和练习这些算法,加深对它们的理解,提升编程技能。这份pdf文档将是你探索数据结构与算法世界的宝贵资源,无论你是初学者还是经验丰富的开发者,都能...
【Python数据结构与算法分析(第2版)】是一本专为Python程序员设计的书籍,旨在帮助读者深入了解数据结构和算法在Python环境中的应用。作者布拉德利·米勒和戴维·拉努姆以其丰富的实战经验,清晰地阐述了如何高效...
《数据结构与算法分析——C++描述》是Mark Allen Weiss教授撰写的一本经典教材,针对计算机科学中的核心主题——数据结构和算法进行了深入浅出的阐述。这本书的第三版不仅涵盖了基本的数据结构如数组、链表、栈、...
在IT领域,数据结构与算法是基础且至关重要的部分,特别是排序算法,它们在软件开发中扮演着核心角色。本文将深入探讨“数据结构与算法之排序”,重点关注内部排序和外部排序。 首先,我们理解一下数据结构。数据...
书中讲解了排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序)和搜索算法(如线性搜索、二分搜索、深度优先搜索和广度优先搜索),这些都是解决问题的常见工具。 特别值得一提的是,本书采用...
数据结构与算法是计算机科学的基础,对于任何编程...总的来说,数据结构与算法是计算机科学的基石,通过系统学习和实践,你可以提高编程技能,为成为优秀的IT专业人士打下坚实的基础。记住,持续学习和不断实践是关键。
一些常见的算法包括排序(如冒泡排序、快速排序等)、搜索(如二分搜索、深度优先搜索等)、图算法(如Dijkstra算法、Prim算法等)等。在生产环境中,数据结构和算法的应用非常广泛。例如,你可能需要使用特定的数据...
以下是对标题“数据结构与算法 课后答案”以及描述“数据结构与算法(C++版)参考答案、 数据结构、算法”的详细解释和相关知识点的阐述。 首先,我们来谈谈数据结构。数据结构是组织、存储和管理数据的方式,它...
《数据结构与算法Java》是由周鹏编著的一本深入探讨数据结构与算法的书籍,主要面向Java开发者。这本书详细地介绍了数据结构和算法的基础知识,对于提升编程能力,优化程序设计有着重要的指导意义。 首先,我们要...