`
liusha0007
  • 浏览: 36185 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

选择排序算法

阅读更多

 各种简单排序时公司面试笔试的喜好。分享一下书中源码,大家可以根据需要改写。

 

 

class ArraySel{
	private long[]a;      //封装long类型数组a[]
	private int nElems;   //数据量

	public ArraySel(int max){  //构造
		a=new long[max];     //创建一个数组
		nElems=0;            //初始为空
	}

	//将元素添加到数组中
	public void insert(long value){
		a[nElems]=value;
		nElems++;
	}

	//显示数组内容
	public void display(){
		for(int j=0;j<nElems;j++)   //显示每个元素
			System.out.print(a[j]+" ");   //打印数据
		System.out.println(" ");
	}

	//选择排序主代码
	public void selectionSort(){
		int out, in,min;	
		
		for (out=0; out<nElems-1;out++){     //外循环,从最左端开始放			
				min=out;                         //第一个默认为最小                           
			for(in=out+1;in<nElems;in++)       //内循环
			   if(a[in]<a[min])
			      min=in;
			swap(out,min);
		}
		
	}
	
	
	//swap方法交换(最好写到程序内部,减少调用)
	private void swap(int one,int two){
		long temp=a[one];
		a[one]=a[two];
		a[two]=temp;
	}

}


class SelectSortApp{
	public static void main(String[] args){
		int maxSize=100;        //数组大小
		ArraySel arr;           //涉及到的数组
		arr=new ArraySel(maxSize); //创建数组
		//向数组添加数据
		arr.insert(77);
  	arr.insert(42);
  	arr.insert(85);
  	arr.insert(12);
  	arr.insert(69);  
    arr.insert(98);
    arr.insert(23);
    
    //数组打印
    arr.display(); 
    //将数组中数据排序
    arr.selectionSort();
    //再次打印数组数据
    arr.display();
  }
	
}  


 

分享到:
评论

相关推荐

    选择排序法源代码

    选择排序是一种简单的排序算法,它的基本思想是在未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)的元素,然后放到已排序序列的末尾。...

    VC++选择排序法源程序

    在这个案例中,我们关注的是选择排序法,这是一种简单的直观排序算法,由VC++实现。下面我们将详细探讨选择排序法及其在VC++中的应用。 **选择排序法**: 1. **概念**:选择排序是一种非交换排序算法,它的基本思想...

    单链表上的简单选择排序算法

    简单选择排序是一种基础且直观的排序算法,虽然效率较低,但对理解排序原理非常有帮助。当我们需要在单链表这种非数组结构上进行排序时,需要对基本的简单选择排序算法进行一些调整。接下来,我们将详细探讨如何在...

    用选择排序法对数组排序

    本文将深入探讨一种经典的排序算法——选择排序,并通过给定的C语言代码示例来详细解析其工作原理和实现过程。 ### 选择排序的基本概念 选择排序是一种简单直观的比较排序算法。其基本思想是在未排序序列中找到...

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

    总结来说,选择排序法是一种基础的排序算法,它的主要优点在于算法简单,易于理解和实现,但其效率相对较低,适用于小规模数据的排序。在实际应用中,如果对性能有较高要求,通常会选择更高效的排序算法,如快速排序...

    C#选择排序法排序

    本项目聚焦于选择排序法,这是一种简单直观的排序算法,适用于小规模数据集或教学目的。 选择排序的工作原理如下: 1. **基本概念**:选择排序是一种不稳定的排序方法,它通过重复地找出待排序序列中的最小(或...

    C语言编程实现选择排序算法的含注释源代码资源

    选择排序法c语言程序。本资源是C语言编程实现选择排序算法的含注释源代码资源。选择排序(Selection Sort)是一种简单直观的排序算法,它的工作原理为:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的...

    C语言程序设计-编写函数用选择排序法对数组中的数据进行从小到大的排序;

    功能:编写函数用选择排序法对数组中的数据进行从小到大的排序;

    排序算法——选择排序.docx

    选择排序是一种简单直观的排序算法,它的工作原理可以分为以下几个步骤: 1. **理解选择排序**:选择排序从数组的第一个元素开始,遍历数组寻找当前未排序部分的最小(或最大)元素。找到后,将这个最小(或最大)...

    Java 选择排序 算法

    Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...

    选择排序算法的动态演示程序

    ### 一、选择排序算法的基本概念 **选择排序(Selection Sort)**是一种简单直观的比较排序算法。它的工作原理是:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素...

    可视化展示选择排序算法实现效果

    选择排序是一种基础的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。本项目通过Qt库实现了选择排序算法的可视化展示,...

    c#选择排序法 冒泡排序法 插入排序法 3种排序法

    本篇文章将详细介绍在C#语言中实现的选择排序法、冒泡排序法以及插入排序法,并通过具体的代码示例来展示每种排序方法的工作原理。 #### 一、冒泡排序(Bubble Sort) **定义与原理:** 冒泡排序是一种简单的排序...

    php选择排序法实现数组排序实例分析_.docx

    因此,在选择排序法应用时,需要根据实际情况选择合适的排序算法,以确保排序速度和稳定性。 在 PHP 中,选择排序法可以与其他排序算法组合使用,以提高排序速度和稳定性,例如使用快排(QuickSort)或归并排序...

    快速排序,冒泡排序,选择排序C++源代码

    用C++写了以上三种排序算法,对初学数据结构的同学一个参考

    基于Java语言实现的直接选择排序算法.pdf

    "基于Java语言实现的直接选择排序算法.pdf" 本文主要介绍了直接选择排序算法的原理和实现方法,并使用Java语言实现了该算法。文章首先介绍了排序的基本概念和分类,然后详细介绍了直接选择排序算法的基本思想和实现...

    经典的数据结构 选择排序算法

    选择排序是一种简单直观的排序算法,它是通过重复地找出待排序序列中剩余元素中的最小(或最大)元素,然后将其与序列的起始位置交换,从而达到排序的效果。这种算法适用于各种编程语言,包括C、C++、Java、Python等...

    循序渐进学习C语言选择排序算法.pdf

    循序渐进学习C语言选择排序算法.pdf 在计算机科学中,排序算法是最基本和最重要的算法之一。选择排序算法是其中的一种,广泛应用于各种编程语言中。本文将从基础开始,循序渐进地讲解C语言选择排序算法的实现和应用...

    基于口诀教学法的C语言选择排序算法的教学设计与分析.pdf

    口诀教学法运用在选择排序算法中的教学设计包括以下几个方面: 1. 选择排序算法概念的讲解。首先明确排序算法的基本概念,介绍算法的定义、起源、以及它在计算机科学中的重要性。进一步地,介绍选择排序算法的基本...

    第03章 方法与数组 08 选择排序算法

    选择排序算法在Java等编程语言中有着广泛的应用,尤其适用于理解基本排序算法的工作原理。 选择排序是一种不稳定的排序算法,它的基本思想是在未排序的序列中找到最小(或最大)的元素,将其放置到序列的起始位置,...

Global site tag (gtag.js) - Google Analytics