package com.basic.sort;
public class BasicSort {
public static void main(String argvs[]) {
int test[] = {3,1,2,5,4,3};
maopao m = new maopao(test);
m.sort();
m.print();
quik q = new quik(test);
q.sort();
q.print();
}
}
/**
* 冒泡排序:内部排序中的交换排序 时间复杂度O(n^2)
*/
class maopao {
private int array[];
public maopao(int array[]) {
this.array = array;
}
public void sort() {
for (int i = 0; i < this.array.length; i++) {
for (int j = i + 1; j < this.array.length; j++) {
if (array[i] > array[j]) {
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
}
public void print() {
for (int i = 0; i < this.array.length; i++) {
System.out.println(this.array[i]);
}
}
}
/**
* 快速排序:内部排序中的交换排序 时间复杂度 理想O(nLogn) 最差O(n^2)
*/
class quik {
private int array[];
public quik(int array[]) {
this.array = array;
}
private int middle(int[] array, int low, int high) {
int tmp = array[low];
while(low < high) {
while(low < high && array[high] >= tmp) {
high--;
}
array[low] = array[high];
while(low < high && array[low] <= tmp) {
low++;
}
array[high] = array[low];
}
array[low] = tmp;
return low;
}
private void quiksort(int[] array, int low, int high) {
if (low < high) {
int mid = middle(array, low, high);
quiksort(array, low, mid-1);
quiksort(array, mid+1, high);
}
}
public void sort() {
if (this.array.length > 0) {
quiksort(this.array, 0, this.array.length - 1);
}
}
public void print() {
for (int i = 0; i < this.array.length; i++) {
System.out.println(this.array[i]);
}
}
}
java排序 内部排序 交换排序
最新推荐文章于 2022-10-12 22:50:54 发布