java常用四种排序源代码

选择排序

public class ChooseSort {

publicstatic voidmain(String[] args) {

int[]x = { 2, 332, 16, 575, 203, 4, 23, 11, 345, 32 };

ChooseSort cs = new ChooseSort();

cs.selectSort(x);

for(int i = 0; i < x.length; i++) {

System.out.print(x[i] + "  ");

}

}

publicstatic voidselectSort(int[] a) {

intminIndex = 0;

inttemp = 0;

if((a == null) || (a.length == 0))

return;

for(int i = 0; i < a.length; i++) {

minIndex = i;// 无序区的最小数据数组下标

for(int j = i + 1; j < a.length; j++) {// 在无序区中找到最小数据并保存其数组下标

if (a[j] < a[minIndex]) {

minIndex = j;

}

}

if(minIndex != i) {// 如果不是无序区的最小值位置不是默认的第一个数据,则交换之。

temp = a[i];

a[i] = a[minIndex];

a[minIndex] = temp;

}

}

}

}

插入排序

public class InsertSort {

publicstatic voidmain(String[] args) {

inta[]={ 2, 332, 16, 575, 203, 4, 23, 11, 345, 32 };;

InsertSort is=new InsertSort();

is.sort(a);

for(int i=0;i<a.length;i++){

System.out.print(a[i]+"  ");

}

}

publicvoid sort(intobj[]){

for(int j=1;j<obj.length;j++){

intkey=obj[j];

inti=j-1;

while(i>=0&&obj[i]>key){

obj[i+1]=obj[i];

i--;

}

obj[i+1]=key;

}

}

}

冒泡排序

public class BubbleSort {

publicvoid bubbleSort(int a[]){

intn=a.length;

for(int i=0;i<n-1;i++){

for(int j=0;j<n-i-1;j++){

if(a[j]>a[j+1]){

int temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

publicstatic voidmain(String[] args){

BubbleSort bs=new BubbleSort();

inta[]={ 2, 332, 16, 575, 203, 4, 23, 11, 345, 32 };

bs.bubbleSort(a);

for(int m = 0; m < a.length; m++) {

System.out.print(a[m] + "  ");

}

}

}

快速排序

public class QuickSort {

publicstatic voidmain(String[] args) {

int[]strVoid = { 2, 332,16, 575, 203, 4, 23, 11, 345, 32 };

QuickSort sort = new QuickSort();

sort.quickSort(strVoid, 0, strVoid.length - 1);

for(int m = 0; m < strVoid.length; m++) {

System.out.print(strVoid[m] + "  ");

}

}

publicvoid quickSort(int strDate[], intleft, int right) {

inti, j;

i = left;

j = right;

intmiddle = strDate[(i)];

while(i < j) {

inttempDate = 0;

while(i < j && strDate[j] >= middle) {

j = j - 1;

}

tempDate = strDate[j];

strDate[j] = strDate[i];

strDate[i] = tempDate;

while(i < j && strDate[i] < middle) {

i = i + 1;

}

tempDate = strDate[j];

strDate[j] = strDate[i];

strDate[i] = tempDate;

}

strDate[i] = middle;

if(left < i - 1) {

quickSort(strDate, left, i -1);

}

if(right > i + 1) {

quickSort(strDate, i + 1,right);

}

}

}

时间: 2024-10-18 13:55:09

java常用四种排序源代码的相关文章

Java的四种引用源代码例子

Java的四种引用源代码例子 不解释,直接上代码,千言万语顶不住一行代码. package com.apkkids.javalanguage; import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference

php 常用四种排序 冒泡,选择,插入,快排

---恢复内容开始--- 1冒泡排序.  [为描述方便,例子全面为升序排列] 简述:假设数组有10个数字,从左向右.依次比较,如果前者大于后者,则两两交换.每一轮将冒泡一个最大数出来,依次循环,完成排序 流程描述:-- 第一次  a[0] 与 a[1]  比如果 a[0] > a[1]  则 a[0] 与 a[1] 交换,然后 a[1] 与 a[2] 交换,依次到  a[8] 与 a[9]  交换.  此轮过后  a[9] 必为  a[0-9]  中的最大值. 第二次(此时 a[9]以是最大值)

JAVA中运用数组的四种排序方法

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法. 快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现. 冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来. 选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组. 插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序.下面我就将他们的实现方法一一详解供大家参考. <1>利用Arrays带有的排序方法快

Java常用三种算法排序比较

Java常用三种算法排序比较 冒泡排序: package demo1; /** * * @author xiaoye 2014-5-13 */ /** * 有N 个数据需要排序,则从第0 个数开始,依次比较第0 和第1 个数据, * 如果第0 个大于第1 个则两者交换,否则什么动作都不做,继续比较第 1 个第2个-, * 这样依次类推,直至所有数据都"冒泡"到数据顶上. 冒泡排序的效率 O(N*N ),比较 N*N/2 ,交换N*N/4 . */ public class Bubble

Java的四种引用类型

Java中有四种引用类型:强引用.软引用.弱引用.虚引用.--应该是从1.2版本开始添加的. 这个概念是与垃圾回收有关的. 如果你不知道这几个概念,那你用的肯定都是强引用.例如String str = new String(); 这个str到 new String() 的引用类型就是强引用. 那什么是弱引用呢?先看一段代码: 1 package cn.larry.pojo; 2 3 public final class Product { 4 private String name; 5 6 p

iOS 常用四种数据存储方式

iOS 常用四种数据存储方式 在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅, ,使得用户体验更好.下面介绍?一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前?一个方法告诉系统怎么对对象进行编码,而后?一个方法则是告诉系统怎么对对象进行解码.例如对Possession对

SqlServer四种排序:ROW_NUMBER()/RANK()/DENSE_RANK()/ntile() over()

今天女票问我SqlServer的四种排序,当场写了几句Sql让她了解,现把相关Sql放上来. 首先,我们创建一些测试数据. if OBJECT_ID('Tempdb.dbo.#Tmp') is not null drop table #Tmp create table #Tmp ( name nvarchar(10) ) insert into #Tmp select N'张三' union select N'李四' union select N'王五' union select N'赵六' u

四种排序算法PHP实现类

四种排序算法的PHP实现:1) 插入排序(Insertion Sort)的基本思想是: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止. 2) 选择排序(Selection Sort)的基本思想是: 每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕. 3) 冒泡排序的基本思想是: 两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止. 4) 快速排序实质上和

JAVA web四种属性范围总结

首先必须要了解客户端跳转和服务器端跳转的区别: 客户端跳转: response.sendRedict(String path),地址栏发生改变.不能传递request属性. 服务器端跳转:<jsp:forward> 地址栏不发生改变.能传递request属性. request属性范围: 只有在服务器端跳转以后,所有设置的内容才会停留下来. session属性范围:  不管是客户端跳转还是服务器端跳转,只要是是属性设置了都可以取得. 1:page:(pageContext) 只在一个页面中保存属