- 浏览: 39568 次
- 性别:
- 来自: 北京
文章分类
最新评论
选择排序法
选择排序(Select Sort)算法的基本思想是:在待排序的无序数组中找出最小数(或最大数)并将它与序列中的第一个记录交换位置;然后从不包括第一个位置上的记录序列中再次选择最小数(或最大数)并将它与序列中的第二个记录交换位置;如此重复,直到序列中只剩下一个数为止。
假定有n个数的序列,要求按递增的次序排序,则实现步骤为:
第一步:从n个数中找到最小数的下标,将最小数与第一个数交换位置,通过这一趟排序,第一个数位置就确定好了。
第二步:除去已经排序好的数外,在剩下的n-1个元素中再按步骤一的方法选出第二小的数,与未排序数中的第一个数交换位置。
第三步:重复步骤二,最后构成递增数列。
下面举个例题:给定你一个无序数组a[10],将其按递增排序。
package com.itttop.sort; public class SelectSort { public static void main(String[] args) { int R[] = { 22, 15, 7, 35, 89, 13, 6, 12, 3, 9 }; int i, j, temp, index, min;// index用于记录最小值的下标。 // 下面为输出原来数列,用于比较。 System.out.println("未排序前原数列为:\n"); for (i = 0; i < R.length; i++) System.out.print("\t" + R[i]); // 下面为数列排序过程。 for (i = 0; i < R.length-1; i++) { min = R[i]; index = i; for (j = i + 1; j < R.length; j++) { if (min > R[j]) { min = R[j]; index = j; } } temp = R[i]; R[i] = R[index]; R[index] = temp; } System.out.println("\n"+"排序好的递增数列为:\n"); for (int k = 0; k < R.length; k++) System.out.print("\t" + R[k]); } }
未排序前原数列为:
22 15 7 35 89 13 6 12 3 9
排序好的递增数列为:
3 6 7 9 12 13 15 22 35 89
发表评论
-
String中的小问题2
2010-10-25 14:24 68//题目;收集顾客反馈意见信息(用户输入的自己姓名、联系方 ... -
斐波那契数列
2010-10-25 14:23 160/**题目:斐波那契数列 * 求fibonacci数列 ... -
String中的小问题
2010-10-25 14:22 90/**题目1: * 给定一个字符串"Aaaa ... -
四种操作xml的方式: SAX, DOM, JDOM , DOM4J的比较
2010-10-25 13:43 57四种操作xml的方式: SAX, DOM, JDOM ... -
用Dom4j解析XML及中文问题
2010-10-25 13:42 301用Dom4j解析XML及中文问题(转载) ... -
Dom4j的使用(转至CSDN)
2010-10-25 13:32 74Dom4j 使用简介 DOM4J ... -
JSON入门二
2010-10-25 13:29 684JSON 的真正价值 正如在上一篇文章 中所描 ... -
JSON入门一
2010-10-25 13:27 739在异步应用程序中发送和接收信息时,可以选择以纯文本和 X ... -
a href="#" 与 a href="javascript:void(0)" 的区别(转)
2010-10-25 13:25 810a href="#" 与 a h ... -
浅谈java中的冒泡排序法
2010-10-25 13:13 1897冒泡排序法 冒泡 ... -
C语言中的二分查找(折半查找)
2010-10-25 13:11 2908为了提高查找效率,在一个数组中查找某个数据是否存在时,可 ... -
约瑟夫环2
2010-10-25 13:06 210方法二:用面向对象的思想来解决问题 在同一个包里新建 ... -
约瑟夫环
2010-10-25 13:03 1092著名的约瑟夫环问题详解 问题概述: 已知n个人( ... -
Java中实现对象比较的几个相关概念
2010-10-25 12:54 814在Java中实现对象比较的几个相关概念(转) 一、跟对象 ...
相关推荐
首先,选择排序是一种简单的排序算法。其主要思想是每次选择最小的元素,并将其放置在正确的位置。下面是JAVA实现选择排序的代码: ```java public static void selectsort(int array[]) { for (int i = 0; i ; i++...
- **排序算法**:冒泡排序、选择排序、插入排序、快速排序等。 - **搜索算法**:二分查找、深度优先搜索、广度优先搜索等。 #### 三、J2EE企业级开发 完成了JavaSE的学习后,可以进一步探索J2EE方向,为将来从事...
Java 中的 Set、List、Map 的区别 Java 中的集合可以存储和操作数目不固定的一组数据。所有的 Java 集合都位于 java.util 包中!Java 集合只能存放引用类型的数据,不能存放基本数据类型。 Collection 接口是最...
在Java编程语言中,数据结构是组织和存储数据的基本方式,它们为算法的高效执行提供了基础。本篇文章将深入探讨两个重要的数据结构实现类:Collection和Map,以及它们在Java中的应用。 首先,Collection是Java集合...
Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储、管理和处理提供了丰富的类和接口。这个框架包括了数组、链表、队列、堆栈、映射等多种数据结构,极大地提高了开发效率和代码的可读性。在本文中...
在Java编程语言中,`TreeMap` 和 `TreeSet` 是两种基于红黑树数据结构实现的集合类,它们都提供了自动排序的功能。本文将详细探讨 `TreeMap` 和 `TreeSet` 的排序机制以及如何自定义排序规则。 首先,`TreeMap` 是...
`ComparableTimSort`是一个高效的排序算法,它基于Tim Peters的TimSort算法,这是一种稳定的排序算法,结合了归并排序和插入排序的特点。在排序过程中,`ComparableTimSort`会进行二分查找(binary sort)来确定元素...
排序算法,分为内部排序和外部排序。内部排序要使用内存,这里只探讨内部排序。 1,插入排序:直接插入排序和希尔排序 2,选择排序:简单选择排序和堆排序 3,交换排序:冒泡排序和快速排序 4,归并排序 5,基数排序...
选择题考察基本的Java知识,论述题要求你阐述对某一技术或概念的理解,而编程题则可能涉及设计模式的实现,如单例、工厂和代理模式,或是基础的排序算法。因此,扎实的Java基础知识和一定的编程实践能力是必不可少的...
在Android开发中,缓存策略对于提升应用性能和用户体验至关重要,尤其是在处理大量数据或资源时。本文主要讨论了Android中的LruCache缓存策略,它是一种高效的内存管理机制,尤其适用于图片或者其他大对象的缓存。 ...
学习数据结构不仅是学习具体的队列、二叉树、排序等数据结构及相应算法,更重要的是学会如何将现实问题转化为计算机语言的表示,这是非常重要的逻辑思维能力的锻炼,也是程序员入门的基本条件。 然而,在高职院校...
链表可以用于解决各种问题,如约瑟夫问题(Josephus Problem)、排序算法(如链表排序)、搜索问题(链表中查找特定元素),以及更复杂的数据结构如广义表。在PHP的底层实现,由于其基于C语言,内存管理遵循栈区、堆...
8. **算法与数据结构**:虽然Java笔试题不一定涉及复杂算法,但基础的排序、查找算法,以及链表、树等数据结构的运用是必要的。 9. **JVM原理**:理解JVM的工作原理,如内存模型、垃圾回收、类加载机制等,可以帮助...
最后,常见面试算法题汇总部分,可能会包含排序算法(如冒泡、选择、插入、快速、归并排序)、查找算法(如二分查找)、链表操作、栈与队列的应用、图和树结构的题目,以及动态规划、贪心策略等复杂算法问题。...
在这个预处理器中,我们将编写Java脚本来生成OAuth签名,这是OAuth 1.0认证过程的关键部分。 3. **Java脚本实现OAuth签名**: 参照提供的代码,可以看到以下关键组件: - 定义常量:MAC_NAME(HMAC-SHA256算法...
- 可以使用排序算法(如快速排序)后直接获取中位数。 - **内存不足**: - 使用外部排序技术,如合并排序。 - 或者采用近似算法如Reservoir Sampling来估算中位数。 7. **Java垃圾回收机制** - Java中的垃圾...
10. **云计算与大数据**:浅谈云计算服务,如阿里云、腾讯云等,以及大数据的应用,帮助读者理解科技发展的趋势。 11. **网络编程**:对于有一定基础的读者,可能会涉及HTML、CSS、JavaScript等基础网页开发语言,...