【Java】Java中几种排序算法

package javaArray;

import java.sql.Date;

public class A2 {

	public static void main(String[] args) {
		int a[] = new int[5];
		Date[] days = new Date[3];

		System.out.println(a[3]);
		System.out.println(days[2]);

		int[] data = new int[] {3, 9, 2, 8, 7, 0, 4, 6, 5, 1};

		showArray(data);

		bubbleSort(data);
		showArray(data);

		selectSort(data);
		showArray(data);

		insertSort(data);
		showArray(data);

	}

	/**
	 * showArray
	 * @param data
	 */
	public static void showArray(int[] data)
	{
		for (int i = 0; i < data.length; i++)
		{
			System.out.print(data[i] + "  ");
		}
		System.out.println();
	}

	/**
	 * bubbleSort
	 * @param a
	 */
	public static void bubbleSort(int[] a)
	{
		int len = a.length;
		for (int i = 0; i < len - 1; i++)
		{
			for (int j = 0; j < len - i - 1; j++)
			{
				if (a[j] > a[j + 1])
				{
					a[j] ^= a[j + 1];
					a[j + 1] ^= a[j];
					a[j] ^= a[j + 1];
				}
			}
		}
	}

	/**
	 * selectSort
	 * @param a
	 */
	public static void selectSort(int[] a)
	{
		int len = a.length;
		for (int i = 0; i < len - 1; i++)
		{
			int tmp = i;
			for (int j = i + 1; j < len; j++)
			{
				if (a[tmp] < a[j])
				{
					tmp = j;
				}
			}
			if (tmp != i)
			{
				a[tmp] ^= a[i];
				a[i] ^= a[tmp];
				a[tmp] ^= a[i];
			}
		}
	}

	/**
	 * insertSort
	 * @param a
	 */
	public static void insertSort(int[] a)
	{
		for (int i = 1; i < a.length; i++)
		{
			for (int j = i; j > 0; j--)
			{
				if (a[j] < a[j - 1])
				{
					a[j] ^= a[j - 1];
					a[j - 1] ^= a[j];
					a[j] ^= a[j - 1];
				}
				else {
					break;
				}
			}
		}
	}

}
<pre name="code" class="java">	/**
	 *
	 * @param a
	 * @param num
	 * @return
	 */
	public static int binarySearch(int[] a, int num)
	{
		int start = 0;
		int end = a.length - 1;
		int mid = (start + end) / 2;

		if (a.length == 0)
			return -2;

		while(start <= end)
		{
			if (a[mid] > num)
			{
				end = mid - 1;
				mid = (start - end) / 2;
			}
			else if (a[mid] < num)
			{
				start = mid + 1;
				mid = (start + end) / 2;
			}
			else {
				return mid;
			}
		}

		return -1;
	}
				
时间: 2024-09-11 14:16:49

【Java】Java中几种排序算法的相关文章

JavaScript中几种排序算法的简单实现_基础知识

排序算法的实现 我的JS水平就是渣渣,所以我就用类似于JAVA和C的方式来写JavaScript的排序算法了. 而且这里我不讲算法原理,仅仅只是代码实现,可能会有Bug,欢迎大家博客评论指导.插入排序 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排

java语言中哪一种排序算法用的最多?

问题描述 java语言中哪一种排序算法用的最多? java语言中哪一种排序算法用的最多?快速排序既然效率高,为什么我们还要用冒泡呢?冒泡的好处是什么? 解决方案 不能说快速排序一定效率高,对于有序的序列,归并排序的效率就更高.对于大量小整数的排序,基数排序不但效率高,而且占用内存少.各种排序有不同的使用场合.所以都要学习,而不是问哪种常用. 解决方案二: 冒泡排序是用来理解排序的思路的,快速排序是默认的java排序,但是稳定性极差,建议你去百度八大排序,从快速插入排序开始,系统的学习理解排序.

java datatable中怎么做排序编号!

问题描述 java datatable中怎么做排序编号! 我现在需要在excel行号前面加一列编号,并且按顺序来排列!例如1.2.3.4..... 解决方案 你用的是什么数据库?现在几个主流的数据库都有ROWNUM 或者参考How to display dataTable row numbers in JSF这篇文章和源码是否对你有帮助.

C/C++中的经典排序算法总结

C/C++中的经典排序算法总结 在C/C++中,有一些经典的排序算法,例如:冒泡排序.鸡尾酒排序或双向冒泡排序(改进的冒泡排序).选择排序.直接插入排序.归并排序.快速排序.希尔排序和堆排序等等.下面对这些排序算法进行一一解析并给出示例代码以共享之. 1.冒泡排序 冒泡排序是最基本的排序算法,之所以称之为冒泡排序是因为在冒泡排序的过程中总是大数往前放,小数往后放,相当于气泡上升. 冒泡排序的基本原理是:依次比较相邻的两个数,将大数放在前面,小数放在后面. 影响冒泡排序算法性能的主要部分就是循环和

经典的7种排序算法 原理C++实现

经典的7种排序算法 原理C++实现 排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率. 7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序.冒泡排序.插入排序:第二类是高级排序算法,有堆排序.排序树.归并排序.快速排序. 一.低级排序算法 1. 选择排序 排序过程:给定一个数值集合,循环遍历集合,每次遍历从集合中选择出最小或最大的放入集合的开头或结尾的位置,下次循环从剩余的元素集合中遍历找出最小的并如上操作,最后直至所有原集合元素都遍历完毕,排序结束. 实现代

9种排序算法总结

排序算法可以说是计算机专业学生要学习的最基础的算法,但其实也是最重要的,现在大部分互联网公司笔试面试也都会涉及到排序算法的知识.除了了解思想之外,还应该动手写一写,分析一些具体思路.时间复杂度.空间复杂度和稳定性等. 我们面试讨论小分队也简单讨论了一下排序算法,为了加深记忆,我自己也动手写了一些代码(Linux平台写的,自己测试是通过了),并做一些分析(由于水平较水,代码可能有误!). 9种排序算法分别为:选择排序.冒泡排序.插入排序.希尔排序.归并排序.堆排序.快速排序.计数排序.基数排序!

C#几种排序算法_C#教程

作者:Sabine [导读]本文介绍了C#的四种排序算法:冒泡排序.选择排序.插入排序和希尔排序  冒泡排序 using System: namespace BubbleSorter  { public class BubbleSorter  { public void Sort(int [] list)  { int i,j,temp:  bool done=false:  j=1:  while((j<list.Length)&&(!done))  { done=true:  f

C#的四种排序算法

排序|算法 本文介绍了C#的四种排序算法:冒泡排序.选择排序.插入排序和希尔排序 冒泡排序 using System: namespace BubbleSorter { public class BubbleSorter { public void Sort(int [] list) { int i,j,temp: bool done=false: j=1: while((j<list.Length)&&(!done)) { done=true: for(i=0:i<list.

经典算法-C#四种排序算法

排序|算法 本文介绍了C#的四种排序算法:冒泡排序.选择排序.插入排序和希尔排序 冒泡排序 using System: namespace BubbleSorter { public class BubbleSorter { public void Sort(int [] list) { int i,j,temp: bool done=false: j=1: while((j<list.Length)&&(!done)) { done=true: for(i=0:i<list.