一、冒泡排序
package test;
/**
* 测试冒泡排序
* @author 凡心所向,素履以往,生如逆旅,一苇一航
*
*/
public class maopao {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = {0,3,5,7,2,1,4,8,9,6};
int temp = 0;
for(int i=0;ia[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//打印结果
for(int i = 0;i
二、选择排序
选择排序:第一次从 R[0] ~ R[n-1] 中选取最小值,与 R[0] 进行交换,第二次从 R[1] ~ R[n-1] 中选择最小值与R[1]交换 .........,总共通过 n-1 次,得到一个安排序码从小到大的有序序码。
package test;
public class xuanze {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = {0,3,5,7,2,1,4,8,9,6};
int min_index,min;
int temp = 0;
for(int i = 0 ; i < a.length-1 ; i++) {
min_index = i;
min = a[i];
for(int j=i+1;j
三、插入排序
插入排序分为三种:1、插入排序法;2、谢尔排序法;3、二叉树排序法
插入排序的基本思想:把n个待排序的元素看成是一个有序表和一个无序表,开始有序表只包含一个元素,无序表包含n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序码进行比较,把它插入到有序表的适当位置,使之成为新的有序表。
package paixu;
/**
* 插入排序
* @author 凡心所向,素履以往,生如逆旅,一苇一航
*
*/
public class charu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = {0,3,1,6,8,2,4,9,7,5};
for(int i=1;i=0&&insertVal
四、快速排序
package paixu;
/**
* 测试快速排序
* @author 凡心所向,素履以往,生如逆旅,一苇一航
*
*/
public class kuaisu {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = {0,3,6,8,1,4,2,5,7,9};
QuickSort qs = new QuickSort();
qs.kuaiSu(0, a.length-1, a);
//输出结果
for(int i=0;iprivot) r--;
if(l>=r) break;
temp = a[l];
a[l] = a[r];
a[r] = temp;
if(a[l]==privot) --r;
if(a[r]==privot) ++l;
}
if(l==r) {
l++;
r--;
}
if(leftl) kuaiSu(l,right,a);
}
}