黑马程序员_Java中几种排序算法

来源:互联网 发布:网络与现实的性格差异 编辑:程序博客网 时间:2024/05/23 00:02

------- android培训java培训、期待与您交流! ----------

1)冒泡排序

import org.rut.util.algorithm.SortUtil;public class BubbleSort implements SortUtil.Sort{    public void sort(int[] data) {        int temp;        for(int i=0;i<data.length;i++){            for(int j=data.length-1;j>i;j--){                if(data[j]<data[j-1]){                    SortUtil.swap(data,j,j-1);                }            }        }    }}



2)插入排序

import org.rut.util.algorithm.SortUtil;public class InsertSort implements SortUtil.Sort{    public void sort(int[] data) {        int temp;        for(int i=1;i<data.length;i++){            for(int j=i;(j>0)&&(data[j]<data[j-1]);j--){                SortUtil.swap(data,j,j-1);            }        }           }}

3)选择排序


import org.rut.util.algorithm.SortUtil;public class SelectionSort implements SortUtil.Sort {    public void sort(int[] data) {        int temp;        for (int i = 0; i < data.length; i++) {            int lowIndex = i;            for (int j = data.length - 1; j > i; j--) {                if (data[j] < data[lowIndex]) {                    lowIndex = j;                }            }            SortUtil.swap(data,i,lowIndex);        }    }}

4)快速排序

import org.rut.util.algorithm.SortUtil;public class QuickSort implements SortUtil.Sort{    public void sort(int[] data) {        quickSort(data,0,data.length-1);           }    private void quickSort(int[] data,int i,int j){        int pivotIndex=(i+j)/2;        //swap        SortUtil.swap(data,pivotIndex,j);                int k=partition(data,i-1,j,data[j]);        SortUtil.swap(data,k,j);        if((k-i)>1) quickSort(data,i,k-1);        if((j-k)>1) quickSort(data,k+1,j);            }    private int partition(int[] data, int l, int r,int pivot) {        do{           while(data[++l]<pivot);           while((r!=0)&&data[--r]>pivot);           SortUtil.swap(data,l,r);        }        while(l<r);        SortUtil.swap(data,l,r);               return l;    }}
归并排序/堆排序。。。。。。




------- android培训java培训、期待与您交流! ----------

0 0
原创粉丝点击