常见排序——Java实现

原创 2018年04月16日 21:35:16
package struct;

/**
 * 
 * @作者:dyy
 * @公司:陕西科技大学
 * @修改日期:
 * @邮箱:1101632375@qq.com
 * @描述:Java实现几种常见排序
 */


//选择排序类
class SelectSort{
	public void selectSort(int[] arr){
		for(int i = 0;i < arr.length; i++){
			int currentMax = i;//记录当前的最大值下标
			for(int j = i + 1;j < arr.length;j++){
				//找到最大值下标
				if(arr[j] > arr[currentMax]){
					currentMax = j;
				}
			}
			int temp = arr[i];
			arr[i] = arr[currentMax];
			arr[currentMax] = temp;
		}
	}
	public void print(int[] arr){
		for(int i = 0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}
	}
}


//冒泡排序类
class BubbleSort{
	    //冒泡排序的实现
		public void bubbleSort(int[] arr){
			for(int i = 0;i < arr.length - 1;i++){
				for(int j = 0;j < arr.length - 1 - i;j++){
					if(arr[j] < arr[j+1]){
						int temp = arr[j];
						arr[j] = arr[j+1];
						arr[j+1] = temp;
					}
				}
			}
		}
		//打印数组
		public void print(int[] a){
			for(int i =0 ;i<a.length;i++){
				System.out.print(a[i]+" ");
			}
		}
}


//插入排序
class InsertSort{
	public void insertSort(int[] arr){
		for(int i = 0; i < arr.length - 1;i++){
			//将第一个元素当作排好序的
			int j;
			int insert = arr[i];
			for(j = i;j > 0 && insert>arr[j-1];j--){
				arr[j] = arr[j-1];
			}
			arr[j] = insert;
		}
	}
	
	//打印数组
			public void print(int[] a){
				for(int i =0 ;i<a.length;i++){
					System.out.print(a[i]+" ");
				}
			}
}
public class TestVeriousSort {
	public static void main(String[] args) {
		int[] arr1 = {13,2,6,34,1,4,9,7,5};
		//选择排序
		System.out.println("选择排序"+"\n");
		SelectSort obj = new SelectSort();
		System.out.println("初始的数组:");
		obj.print(arr1);
		System.out.println("\n"+"排序后的数组:");
		obj.selectSort(arr1);
		obj.print(arr1);
		
		//冒泡排序
		System.out.println("\n"+"冒泡排序"+"\n");
		BubbleSort obj1 = new BubbleSort();
		System.out.println("初始的数组:");
		obj1.print(arr1);
		System.out.println("\n"+"排序后的数组:");
		obj1.bubbleSort(arr1);
		obj1.print(arr1);
		
		//插入排序
		System.out.println("\n"+"冒泡排序"+"\n");
		InsertSort obj2 = new InsertSort();
		System.out.println("初始的数组:");
		obj2.print(arr1);
		System.out.println("\n"+"排序后的数组:");
		obj2.insertSort(arr1);
		obj2.print(arr1);
	}
}
未完待续。

java实现四种常用排序算法

四种常用排序算法冒泡排序特点:效率低,实现简单 思想(从小到大排):每一趟将待排序序列中最大元素移到最后,剩下的为新的待排序序列,重复上述步骤直到排完所有元素。这只是冒泡排序的一种,当然也可以从后往...
  • huosanghuakai1995
  • huosanghuakai1995
  • 2017-07-13 19:16:34
  • 15682

常见排序算法及JAVA实现

排序算法的分类 先看维基百科中的一张关于排序算法的表 我们主要了解常见的一些排序算法。像Bogo排序,臭皮匠排序这类完全不实用的排序可以置之不理。 我们这里要说的排序算法都是内排序,也...
  • Holmofy
  • Holmofy
  • 2017-04-19 22:01:01
  • 2560

java 常用五种排序

//冒泡排序     //依次比较相邻的两个元素,通过一次比较把未排序序列中最大(或最小)的元素放置在未排序序列的末尾。     public static void BubbleSort (in...
  • sdmxdzb
  • sdmxdzb
  • 2016-03-28 14:35:06
  • 259

java实现几种常见的排序算法

几种常见排序算法 几种常见排序算法 写在前面基础介绍初级排序算法 selection sort选择排序insertion sort插入排序ShellSort希尔排序s...
  • u011001084
  • u011001084
  • 2016-05-09 21:17:32
  • 770

几种常见排序算法的Java实现及时间复杂度

常见的的几种排序方式的Java实现在我们的学习中,在很多的环境里,我们都要进行排序,这里来介绍几种常见的排序方式的Java实现 排序方法主要分为两种排序 - 稳定排序:基数排序、冒泡排序、直接插入...
  • dxhua1996
  • dxhua1996
  • 2017-09-12 13:37:39
  • 1027

java常用的排序和查找算法

...
  • zxwd2015
  • zxwd2015
  • 2017-03-03 19:19:38
  • 340

Java中常见的排序算法

详解java中几种常见的排序算法
  • xiaoge0103
  • xiaoge0103
  • 2016-04-07 17:38:11
  • 2031

6种常见排序算法(java版)

1、排序算法基本概念1.1、什么是排序算法所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相...
  • linpeng123l
  • linpeng123l
  • 2016-08-25 20:25:04
  • 1507

Java常见4种排序

排序 看到数据排序这节所以把排序的常见方法都整理下。 (一)冒泡排序:从最左边开始对两个数进行比较,如果第i个数大于第i+1个数,两个数就交换,不断重复。 最好时间复杂度O(n) 最坏时间复杂...
  • qq_34297007
  • qq_34297007
  • 2017-03-14 20:11:17
  • 923
收藏助手
不良信息举报
您举报文章:常见排序——Java实现
举报原因:
原因补充:

(最多只允许输入30个字)