测试是一门武功,流程是套路、工具是武器,有简单的花拳秀腿,也有深奥的少林武功!
java排序的几种方法
上一篇 /
下一篇 2011-03-20 21:11:28
/ 个人分类:JAVA程序
- public class BubbleSort {
- public static void bubbleSort(int[] array) {
- int length = array.length - 1;
- for (int out = length; out > 0; out--) {
- for (int in = 0; in < out; in++) {
- if (array[in] > array[in + 1]) {
- int s = array[in];
- array[in] = array[in + 1];
- array[in + 1] = s;
- }
- }
- }
- }
-
- }
public class BubbleSort {
public static void bubbleSort(int[] array) {
int length = array.length - 1;
for (int ut = length; out > 0; out--) {
for (int in = 0; in < out; in++) {
if (array[in] > array[in + 1]) {
int s = array[in];
array[in] = array[in + 1];
array[in + 1] = s;
}
}
}
}
}
插入:
- public class InsertSort {
- public static void sort(int[]array){
- int length=array.length;
- for(int out=1;out<length;out++){
- int temp=array[out];
- int in=out;
- while(in>0&&array[in-1]>temp){
- array[in]=array[in-1];
- --in;
- }
- array[in]=temp;
- }
- }
- }
public class InsertSort {
public static void sort(int[]array){
int length=array.length;
for(int ut=1;out<length;out++){
int temp=array[out];
int in=out;
while(in>0&&array[in-1]>temp){
array[in]=array[in-1];
--in;
}
array[in]=temp;
}
}
}
选择:
- public class SelectSort {
- public static void sort(int[]array){
- for(int out=0;out<array.length-1;out++){
- int min=out;
- for(int in=out+1;in<array.length;in++){
- if(array[in]<array[min]){
- min=in;
- }
- }
- int t =array[out];
- array[out]=array[min];
- array[min]=t;
- }
- }
- }
public class SelectSort {
public static void sort(int[]array){
for(int ut=0;out<array.length-1;out++){
int min=out;
for(int in=out+1;in<array.length;in++){
if(array[in]<array[min]){
min=in;
}
}
int t =array[out];
array[out]=array[min];
array[min]=t;
}
}
}
希尔:
- public class SheelSort {
- private int[] hs;
-
- private int[] a;
-
- public void sort(){
- for(int h:hs){
- for(int i=h;i<a.length;i++){
- int in=i;
- int inValue=a[i];
- while(in-h>-1&&a[in-h]>inValue){
- a[in]=a[in-h];
- in=in-h;
- }
- a[in]=inValue;
- }
- }
- }
-
-
- public int[] getHs() {
- return hs;
- }
-
- public void setHs(int[] hs) {
- this.hs = hs;
- }
-
- public int[] getA() {
- return a;
- }
-
- public void setA(int[] a) {
- this.a = a;
- }
- }
public class SheelSort {
private int[] hs;
private int[] a;
public void sort(){
for(int h:hs){
for(int i=h;i<a.length;i++){
int in=i;
int inValue=a[i];
while(in-h>-1&&a[in-h]>inValue){
a[in]=a[in-h];
in=in-h;
}
a[in]=inValue;
}
}
}
public int[] getHs() {
return hs;
}
public void setHs(int[] hs) {
this.hs = hs;
}
public int[] getA() {
return a;
}
public void setA(int[] a) {
this.a = a;
}
}
快速:
- public class SpeedSort {
- private int[] a;
-
- public void sort() {
- int begin = 0;
- int end = a.length - 1;
- quickSort(begin, end);
- for (int i : a) {
- System.out.print(i + " ");
- }
- }
-
- private void quickSort(int begin, int end) {
- if (begin >= end) {
-
- } else {
- int pivot = a[end];
- int result = getPivot(begin, end, pivot);
- quickSort(begin, result - 1);
- quickSort(result + 1, end);
- }
-
- }
-
- private int getPivot(int begin, int end, int pivot) {
- begin = begin - 1;
- int o = end;
- while (true) {
- while (a[++begin] < pivot) {
-
- }
- while (end > 0 && a[--end] > pivot) {
-
- }
- if (begin >= end) {
- break;
- } else {
- swap(begin, end);
- }
- }
- swap(begin, o);
- return begin;
- }
-
- private void swap(int begin, int end) {
- int t = a[begin];
- a[begin] = a[end];
- a[end] = t;
- }
-
- public int[] getA() {
- return a;
- }
-
- public void setA(int[] a) {
- this.a = a;
- }
相关阅读:
- Eclipse远程调试Java的一种方法 (xin_晴, 2011-3-07)
- Spring-MVC入门(一):入门实例 (xin_晴, 2011-3-08)
- Spring-MVC入门(二):后端控制器 (xin_晴, 2011-3-09)
- Java网络爬虫的实现 (xin_晴, 2011-3-10)
- 浅谈Java访问控制机制 (xin_晴, 2011-3-11)
- Google首席架构师谈Java的命运 (xin_晴, 2011-3-14)
- 浅谈J-Hi查询过滤器的实现原理 (xin_晴, 2011-3-15)
- Java编程中异常处理的优劣之道 (xin_晴, 2011-3-16)
- 详解异常处理机制 (xin_晴, 2011-3-17)
- Java单例模式学习笔记 (xin_晴, 2011-3-18)
收藏
举报
TAG:
java
JAVA