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;
}
}
以下是冒泡排序算法实现
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中各种常用排序实现(直接插入排序、直接选择排序、堆排序、冒泡排序、快速排序和归并排序)
- java版排序算法简介及冒泡排序以及优化,选择排序,直接插入排序,希尔排序,堆排序,快速排序及其优化前言 2 分类 2 稳定性 3 时间复杂度 4 Java实现版本 5 1、冒泡排序 6 2、选择排序
- java实现三种简单排序以及改良:冒泡排序,选择排序,直接插入排序
- 冒泡排序-直接选择排序-直接插入排序-希尔排序-java实现
- 排序算法之冒泡排序、选择排序、直接插入排序(java实现)
- java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
- 冒泡排序、直接插入排序及选择排序之Java实现
- 冒泡排序、选择排序、直接插入排序(java实现)
- C语言实现选择排序、直接插入排序、冒泡排序的示例
- C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序
- 用Java实现各种排序(1)---冒泡排序,直接插入排序,简单选择排序
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序——JAVA实现
- 十二.C语言8种排序算法及其实现 1.希尔排序 2.二分插入法 3.直接插入法 4.带哨兵的直接排序法 5.冒泡排序 6.选择排序 7.快速排序 8.堆排序
- java实现冒泡排序,插入排序,选择排序,快速排序
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- Java基本排序实现--插入排序,选择排序,冒泡排序
- 我在北京找工作(二):java实现算法<1> 冒泡排序+直接选择排序
- Java实现四种排序:桶排序,冒泡排序,选择排序,快速排序
- java实现冒泡排序,选择排序,插入排序,快速排序(简洁版)及性能测试