http://blog.csdn.net/clx44551/article/details/51240796
平均复杂度O(n^2),最好情况O(n),最差情况O(n^2)。稳定
class Main{
public static void main(String[] args){
int[] n=new int[]{113,448,66,2,165,84,13,2,64,153};
Sort(n);
System.out.println(Arrays.toString(n));
}
public static int[] Sort(int[] arr){
int length=arr.length;
for(int i=0;iarr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
return arr;
}
}
平均复杂度O(nlog2n),最好情况O(nlog2n),最差情况O(n^2)。不稳定
class Main {
public static void main(String[] args) {
int[] num = new int[] { 21, 5, 13, 2, 45, 6, 3, 7 };
quickSort(num, 0, num.length - 1);
System.out.println(Arrays.toString(num));
}
public static void quickSort(int[] list, int low, int high) {
if (low < high) {
int middle = getMid(list, low, high); //将list数组进行一分为二
quickSort(list, low, middle - 1); //对低字表进行递归排序
quickSort(list, middle + 1, high); //对高字表进行递归排序
}
}
public static int getMid(int[] arr,int low,int hight){
int i=low;
int j=hight;
int k=arr[low];
while(ik)j--;
if(i
简介:插排在数组大部分排序正确的情况下,效率高。依次取数组的前n项进行排序。
平均复杂度O(n^2),最好情况O(n),最差情况O(n^2)。稳定
class Main{
public static void main(String[] args){
int[] n=new int[]{113,448,66};
insertSort(n);
System.out.println(Arrays.toString(n));
}
public static int[] insertSort(int[] arr){
if(arr==null||arr.length<2) return arr;
for(int i=0;i0;j--){
if(arr[j]
简介:插排在数组大部分排序正确的情况下,效率高。因此有了希尔排序,将一个数组分成d份,分别进行插排。数组长度为length,d一般取值为[length/2,length/4,…….1],最后为1。
平均复杂度O(n^1.3),最好情况O(n),最差情况O(n^2)。不稳定
class Main{
public static void main(String[] args){
int[] n=new int[]{113,448,66,2,165,84,13,2,64,153};
xierSort(n);
System.out.println(Arrays.toString(n));
}
public static int[] xierSort(int[] arr){
int d=arr.length;
while(true){
d=d/2;
for(int j=0;j=0;k=k-d){ //for中为一组里面插排的过程
if(arr[k+d]
简介:
第一趟,从数组中找出最小的数与第一个交换;
第二趟,从第二个数开始找到数组中最小的数与第二个交换;
以此类推…..
平均复杂度O(n^2),最好情况O(n^2),最差情况O(n^2)。不稳定
class Main{
public static void main(String[] args){
int[] n=new int[]{113,448,66,2,165,84,13,2,64,153};
Sort(n);
System.out.println(Arrays.toString(n));
}
public static int[] Sort(int[] arr){
int length=arr.length;
for(int i=0;iarr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
return arr;
}
}
- 后面将持续更新别的排序算法….