1、鸡尾酒排序算法
源程序代码:
package com.SuanFa;
public class Cocktial { public static void main(String[] args) { // TODO Auto-generated method stub cooktailSort cook=new cooktailSort(); int[] A={1,2,3,8,4,0,5,34,12,67,35,9,45,443,454,242,343}; int n=A.length; cook.cooktailSort(A, n); System.out.println("输出排序结果"); for(int i=0;i<A.length;i++){ System.out.printf(A[i]+" "); } }}class cooktailSort{ void Swap(int[] A,int i,int j){ int temp=A[i]; A[i]=A[j]; A[j]=temp; } void cooktailSort(int[] A,int n){ int left=0; int right=n-1; while(left<right){ for(int i=left;i<right;i++){ if(A[i]>A[i+1]){ Swap(A,i,i+1); } } right--; for(int i=right;i>left;i--){ if(A[i-1]>A[i]){ Swap(A,i-1,i); } } left++; } }}2、选择排序算法程序代码
package com.SuanFa;
public class XuanZe { public static void main(String[] args) { // TODO Auto-generated method stub selectSort sort=new selectSort(); int[] A={23,34,3,45,45,32,55,12}; int n=A.length; sort.select(A, n); System.out.println("输出排序结果"); for(int i=0;i<n;i++){ System.out.printf(A[i]+" "); } }}class selectSort{ void Swap(int[] A,int i,int j){ int temp=A[i]; A[i]=A[j]; A[j]=temp; } void select(int[] A,int n){ for(int i=0;i<n-1;i++){ int min=i; for(int j=i+1;j<n;j++){ if(A[j]<A[min]){ min=j; } } if(min!=i){ Swap(A,min,i); } } }}3、插入排序算法
程序代码
package com.SuanFa;
public class ChaRu { public static void main(String[] args) { // TODO Auto-generated method stub cha c=new cha(); int[] A={2,3,3,5,21,65,23,43}; int n=A.length; c.insertSoet(A, n); for(int i=0;i<n;i++){ System.out.printf("%d ",A[i]); } }}class cha{ void insertSoet(int A[],int n){ for(int i=1+1;i<n;i++){ int get=A[i]; int j=i-1; while(j>0&&A[j]>get){ A[j+1]=A[j]; j--; } A[j+1]=get; } }}4、二分插入排序算法程序代码
package com.SuanFa;
public class erfengChaRu { public static void main(String[] args) { // TODO Auto-generated method stub test1 sort=new test1(); int[] A={23,34,3,45,45,32,12,55,12,12}; int n=A.length; sort.insertSortDic(A, n); System.out.println("输出排序结果"); for(int i=0;i<n;i++){ System.out.printf(A[i]+" "); } }}class test1{ void insertSortDic(int A[],int n){ for(int i=1;i<n;i++){ int get=A[i]; int left=0; int right=i-1; while(left<=right){ int mid=(left+right)/2; if(A[mid]>get){ right=mid-1; }else left=mid+1; } for(int j=i-1;j>=left;j--){ A[j+1]=A[j]; } A[left]=get; } }}5、堆排序算法