冒泡排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SortDemo04 {
public static void main(String[] args) {
int[] sort={5,1,58,51,26,32,48,88,9,2};
sort(sort);
System.out.println(Arrays.toString(sort));
}
public static void sort(int[] sort){
int count=0;
for (int i = 0; i <sort.length-1 ; i++) {
for (int j = 0; j <sort.length-1-i ; j++) {
if (sort[j + 1] < sort[j]) {
count = sort[j + 1];
sort[j + 1] = sort[j];
sort[j] = count;
}
}
}
}
}
选择排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SortDemo05 {
public static void main(String[] args) {
int[] arrays ={50,5,51,44,62,81,0,125,418,320,2};
for (int i = 0; i <arrays.length-1 ; i++) {
for (int j =i+1; j<arrays.length ; j++) {
if (arrays[j]<arrays[i]){
int count=arrays[j];
arrays[j]=arrays[i];
arrays[i]=count;
}
}
}
System.out.println(Arrays.toString(arrays));
直接插入排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SortDemo06 {
public static void main(String[] args) {
int[] arrays={5,51,21,0,41,100,5,2,1,21,58};
for (int i = 1; i <arrays.length ; i++) {
for (int j = i; j >0&&arrays[j]<arrays[j-1] ; j--) {
int count=arrays[j];
arrays[j]=arrays[j-1];
arrays[j-1]=count;
}
}
System.out.println(Arrays.toString(arrays));
}
}
希尔排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SortDemo07 {
public static void main(String[] args) {
int[] arrays={5,51,8418,718,125,52,10,20,10,20};
for (int h = arrays.length/2; h>0 ;h=h/2 ) {
for (int i = h; i < arrays.length; i++) {
for (int j = i; j > h - 1; j = j - h) {
if (arrays[j] < arrays[j - h]) {
int count = arrays[j];
arrays[j] = arrays[j - h];
arrays[j - h] = count;
}
}
}
}
System.out.println(Arrays.toString(arrays));
System.out.println("=================================");
int[] arrays1={5,51,8418,718,125,52,10,20,10,20,10,5,848,51,518,812,94,10,8,6,91,517,};
int kunth=1;
while(kunth<=arrays1.length/3){
kunth=kunth*3+1;
}
for (int h = kunth; h>0 ;h=(h-1)/3 ) {
for (int i = h; i < arrays1.length; i++) {
for (int j = i; j > h - 1; j = j - h) {
if (arrays1[j] < arrays1[j - h]) {
int count = arrays1[j];
arrays1[j] = arrays1[j - h];
arrays1[j - h] = count;
}
}
}
}
System.out.println(Arrays.toString(arrays1));
}
}
快速排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SortDemo08 {
public static void main(String[] args) {
int[] arrays={25,52,51,65,51,251,251,23,81,2,51,851,9,0,-5};
quickSort(arrays,0,arrays.length-1);
System.out.println(Arrays.toString(arrays));
}
public static void quickSort(int[] arrays,int left,int right){
if(arrays.length==0|| arrays==null){
return;
}
if(left>right){
return;
}
int key=arrays[left];
int l=left;
int r=right;
while(l!=r) {
while (arrays[r]>key && l < r) {
r--;
}
while(arrays[l]<=key&& l<r){
l++;
}
if(l<r){
int temp=arrays[l];
arrays[l]=arrays[r];
arrays[r]=temp;
}
}
arrays[left]=arrays[l];
arrays[l]=key;
quickSort(arrays,left, l-1 );
quickSort(arrays,l+1,right);
}
}
归并排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SortDemo09 {
public static void main(String[] args) {
int[] arrays={2,51,51,85,12,41,5,69,287,163,13};
splitSort(arrays,0,arrays.length-1);
System.out.println(Arrays.toString(arrays));
}
public static void mergeSort(int[] arrays,int start,int center,int end){
int[] tepmArrays=new int[end-start+1];
int i=start;
int j=center+1;
int tepm=0;
while(i<=center&&j<=end){
if(arrays[i]<=arrays[j]){
tepmArrays[tepm]=arrays[i];
i++;
}else{ tepmArrays[tepm]=arrays[j];
j++;
}
tepm++;
}
while(i<=center){
tepmArrays[tepm]=arrays[i];
i++;
tepm++;
}
while(j<=end){
tepmArrays[tepm]=arrays[j];
j++;
tepm++;
}
for (int k = 0; k <tepmArrays.length ; k++) {
arrays[k+start]=tepmArrays[k];
}
}
public static void splitSort(int[] arrays,int start,int end){
int center=(start+end)/2;
if(start<end){
splitSort(arrays,start,center);
splitSort(arrays,center+1,end);
mergeSort(arrays,start,center,end);
}
}
}
基数排序
package com.YouHaoXin.sort;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import java.util.Arrays;
public class SortDemo10 {
public static void main(String[] args) {
int[] arrays={84,0,51,5151,121,451,15,8518,151,81,0,60,25,62};
sortArrays(arrays);
System.out.println(Arrays.toString(arrays));
}
public static void sortArrays (int[] arrays) {
int[][] tepm = new int[10][arrays.length];
int[] num = new int[10];
int max = max(arrays);
int length = String.valueOf(max).length();
for (int i = 0, n = 1; i < length; i++, n = n * 10) {
for (int j = 0; j < arrays.length; j++) {
int count = arrays[j] / n % 10;
tepm[count][num[count]++] = arrays[j];
}
int a=0;
for (int k = 0; k < num.length; k++) {
if(num[k]!=0){
for (int h = 0; h < num[k]; h++) {
arrays[a]=tepm[k][h];
a++;
}
num[k]=0;
}
}
}
}
public static int max(int arrays[]) {
int max=arrays[0];
for (int i = 1; i < arrays.length; i++) {
if (arrays[i]>max){
max=arrays[i];
}
}
return max;
}
}
堆排序
package com.YouHaoXin.sort;
import java.util.Arrays;
public class SoutDemo11 {
public static void main(String[] args) {
int[] arrays={15,51,21,7,41,56,28,14,78,11,22,55};
int start=(arrays.length-1)/2;
for (int i = start; i >=0 ; i--) {
toMax(arrays,arrays.length,i);
}
for (int i = arrays.length-1; i >0 ; i--) {
int a=arrays[0];
arrays[0]=arrays[i];
arrays[i]=a;
toMax(arrays,i,0);
}
System.out.println(Arrays.toString(arrays));
}
public static void toMax(int[] arrays,int size,int index){
int left=index*2+1;
int right=index*2+2;
int max=index;
if(left<size&&arrays[left]>arrays[max]){
max=left;
}
if(right<size&&arrays[right]>arrays[max]){
max=right;
}
if(arrays[max]!=arrays[index]){
int a=arrays[index];
arrays[index]=arrays[max];
arrays[max]=a;
toMax(arrays,size,max);
}
}
}