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

简单的数组选择排序方法

    博客分类:
  • J2SE
阅读更多
  
   package com.test.set;
/***
 *实现了两个简单的算法----数组的选择排序
 *@author java4lyvee@gmail.com
 */
 public class NumberCompositor {

	/**
	 * 选择排序方法
	 * @param args
	 */
	private int []testArray;
	public NumberCompositor(){
		testArray = new int[]{0,2,3,6,4,5,7,8,9,1};
	}
	public static void main(String[] args) {
		NumberCompositor number = new NumberCompositor();
		number.print(number.testCompositor1());
		//number.print(number.testCompositor2());
	}
	/**效率相对低点的选择排序方法*/
	private int[] testCompositor1(){
		print();
		int temp=0;
		for(int i=0;i<testArray.length;i++){
			for(int j=i+1;j<testArray.length;j++){
				if(testArray[j]<testArray[i]){
					temp=testArray[i];
					testArray[i]=testArray[j];
					testArray[j]=temp;
				}
			}
		}
		return testArray;
	}
	/**效率相对高点的选择排序方法*/
	private int[] testCompositor2(){
		print();
		int temp=0;
		for(int i=0;i<testArray.length;i++){
			int k=i;
			for(int j=k+1;j<testArray.length;j++){
				if(testArray[j]<testArray[k]){
					k=j;
				}
			}
			if(k!=i){
				temp=testArray[i];
				testArray[i]=testArray[k];
				testArray[k]=temp;
			}
		}
		return testArray;
	}
	private void print(int testArray[]){
		System.out.println("经过排序后的数组:");
		for(int i=0;i<testArray.length;i++){
		System.out.print(testArray[i]+" ");
		}	
		System.out.println("");
	}
	private void print(){
		System.out.println("未经过排序的数组:");
		for(int i=0;i<testArray.length;i++){
		System.out.print(testArray[i]+" ");
		}
		System.out.println("");
	}

}


   
分享到:
评论
2 楼 java_lyvee 2010-05-18  
第一种方法 每次比较 如果找到小的就交换位置 试想 如果找了3次 就交换了3次
  但是第二种方法 定义一个K 来记录位置 不必要每次都去交换位置 只需到最后交换一次就OK了 ....
1 楼 zhoutaomtv 2010-05-18  
@java_lyvee: testCompositor2()为啥效率会高点呢,没看出它有什么好处。能不能解释一下,谢谢了。

相关推荐

    编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。

    这个项目的目标是创建一个一维数组排序程序,它具有灵活性,能够处理不同来源的数据,并提供三种经典的排序算法供用户选择:冒泡排序、选择排序和插入排序。下面我们将详细探讨这些知识点。 **一、一维数组** 一维...

    数组的排序的五种基本方法

    冒泡排序是最简单的排序方法之一,其基本思想是通过不断交换相邻的逆序元素来逐渐将最大(或最小)的元素“冒”到数组的一端。它的时间复杂度为O(n^2),不适合处理大规模数据,但在小规模或部分有序的数组中表现尚可...

    使用选择排序法对以为数组进行排序

    这种排序方法对于小规模数据或者部分有序的数据,效率尚可,但对于大规模或者完全无序的数据,其效率较低,因为它每次选择最小元素时都要遍历整个数组。 在数组排序的过程中,选择排序法分为以下几个步骤: 1. **...

    文件读出数组进行选择排序和二分查找(java)

    在Java编程中,文件读取、数组操作、选择排序以及二分查找是常见的编程任务,它们涉及了IO流、数据结构和算法等多个方面。以下是这些知识点的详细解释: 1. **文件读取**:Java提供了丰富的IO流类库用于读取文件。...

    java 部分数组递增排序

    2. **选择排序算法**:有许多排序算法可供选择,如冒泡排序、插入排序、选择排序、快速排序、归并排序等。对于小规模的数据或部分排序,简单排序算法如插入排序可能就足够了。对于大规模数据,效率更高的算法如快速...

    c语言数组选择法排序

    在编程领域,数组选择法排序是一种简单直观的排序算法,尤其在C语言中常见。它的工作原理是通过多次遍历数组,找到当前未排序部分的最小(或最大)元素,然后将其与未排序部分的第一个元素交换,从而逐步构建出一个...

    java选择排序 数组选择排序

    在Java中实现选择排序,通常会用到一个名为`SelectionSort`的类,里面包含一个公共方法`selectionSort()`,这个方法接收一个整型数组作为参数。在这个方法中,我们首先设定一个变量`minIndex`来记录当前未排序部分的...

    STM8S003单片机数组10种排序方法分析比较

    在STM8S003单片机上,由于其处理器速度和内存资源限制,对于小规模数组,可以考虑使用冒泡、插入、选择等简单排序方法;而对于中等规模数据,堆排序、快速排序等更高效的方法会更合适。实际应用中,应根据具体场景和...

    java数组排序

    选择排序是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。Java实现如下: ```java public class ...

    C#随机数,C#数组的排序,反转

    总结来说,C#的随机数生成是通过Random类实现的,数组的排序依赖于Array.Sort方法,而反转则借助于Array.Reverse方法。这些基本操作是C#程序员必须掌握的技能,因为它们在日常编程任务中非常常见。通过熟练运用这些...

    JAVA数组的排序方法实例.docx

    ### JAVA数组的排序方法实例 #### 内容概述: 本文档详细介绍了两种在Java中对数组进行排序的方法:冒泡排序法与使用`Arrays.sort()`方法实现数组递增排序。这两种方法是Java编程中常见的排序手段,对于理解数组...

    java 数组递增排序

    首先,最常见的数组排序算法是冒泡排序(Bubble Sort)、选择排序(Selection Sort)、插入排序(Insertion Sort)和快速排序(Quick Sort)。这些算法都有其独特的工作原理和性能特点。 1. **冒泡排序**:冒泡排序...

    数组的几种排序方法

    本篇文章将深入探讨数组的几种常见排序方法,包括冒泡排序、选择排序和插入排序,这些都是基础且实用的排序算法,对于理解更复杂的排序算法有着重要的铺垫作用。 ### 冒泡排序 冒泡排序是一种简单直观的排序算法。...

    C#使用希尔排序法对一维数组进行排序

    虽然最坏情况下时间复杂度仍为O(n^2),但实际应用中由于其平均性能较好,因此在处理中等大小的数组时,希尔排序通常比简单的插入排序更快。 在C#环境中,希尔排序可以用于各种场景,例如处理一维数组的数据排序,...

    C++ 从1开始的数组下表排序,插入排序、交换排序、选择排序,归并排序

    其中包含了各种对数组排序的方法,数组下标从1开始,有插入排序(直接插入排序、希尔排序),交换排序(起泡排序、快速排序),选择排序(简单选择排序,堆排序(另外写))、归并排序(递归,非递归)。

    asp数组 排序

    3. **冒泡排序**:一种简单但效率较低的排序方法。通过不断交换相邻的未排序元素,直到数组完全有序。ASP中的实现代码如下: ```vbscript Function BubbleSort(arr) Dim i, j, temp For i = 0 To UBound(arr) - 1...

    java 冒泡排序 数组冒泡排序

    冒泡排序是一种基础且经典的排序算法,它通过不断交换相邻两个元素的位置,使得每一次遍历都能将当前未排序...在实际开发中,对于大规模数据的排序,我们通常会选择更高效的排序算法,如快速排序、归并排序或堆排序。

    北邮数据结构 用数组实验排序

    数组排序则是指对数组中的元素按照某种特定规则进行重新排列的过程,常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。 1. 冒泡排序:是最简单的排序算法之一,通过不断比较相邻元素并交换...

Global site tag (gtag.js) - Google Analytics