您的位置:首页 > 编程语言 > Java开发

java实现冒泡排序,选择排序,直接插入排序,快速排序

2017-11-02 09:51 776 查看
复习下简单的排序算法,以免忘记,记录如下:



以下是冒泡排序算法实现

package com.cn.main;

//冒泡排序实现

public class BubbleSort {

public static void main(String args[]) {
int[] values= {2,3,6,0,5,4,9,7};
sort(values);
for(int i=0;i<values.length;i++) {
System.out.println(values[i]);
}
}
public static void sort(int[] values) {
int temp;
for(int i=0;i<values.length;i++) {
for(int j=0;j<values.length-i-1;j++) {
if(values[j]>values[j+1]) {
temp=values[j];
values[j]=values[j+1];
values[j+1]=temp;
}
}
}
}

}

选择排序实现

public class SelectionSort {

public static void main(String args[]) {
int[] b= {7,2,9,3,8,4,6,1,5};
selectionSort(b);
for(int i:b) {
System.out.println(i);
}
}
public static void selectionSort(int[] a) {
int n=a.length;
for(int i=0;i<n;i++) {
int k=i;
//找出最小值的下标
for(int j=i+1;j<n;j++) {
if(a[j]<a[k]) {
k=j;
}
}
//将最小值置于排序序列尾部
if(k>i) {
int temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}

}

直接插入排序

public class InsertSort {

public static void main(String args[]) {
int[] b= {7,2,9,3,8,4,6,1,5};
insertSort(b);
for(int i:b) {
System.out.println(i);
}
}
public static void insertSort(int[] values) {
int ln=values.length,v,j;
for(int i=1;i<ln;i++) {
v=values[i];
j=i-1;
while(j>=0&&values[j]&g
a4a9
t;v) {
values[j+1]=values[j];
j=j-1;
values[j+1]=v;
}
}
}

}

快速排序

public class QuickSort {

public static void main(String args[]) {
int[] b= {7,2,9,3,8,4,6,1,5};
quickSort(b);
for(int i:b) {
System.out.println(i);
}
}
private static boolean isEmpty(int[] n) {
return n==null||n.length==0;
}
public static void quickSort(int[] n) {
if(isEmpty(n))
return;
quickSort(n,0,n.length-1);
}
public static void quickSort(int[] n,int l,int h) {
if(isEmpty(n))
return;
if(l<h) {
int pivot=partion(n,l,h);
quickSort(n,l,pivot-1);
quickSort(n,pivot+1,h);
}
}
private static int partion(int[] n,int start,int end) {
int temp=n[start];
while(start<end) {
while(n[end]>=temp&&start<end)
end--;
if(start<end) {
n[start++]=n[end];
}
while(n[start]<temp&&start<end)
start++;
if(start<end) {
n[end--]=n[start];
}
}
n[start]=temp;
return start;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐