目录
###算法---排序
##冒泡排序
(*/一个判断类体:判断比较的两个数谁大*/)
(*/一个交换位置类体:用来交换两个数的位置)
(*/主类体:用来写主程序)
#方法:
1:创建对象(创建一个名为Bubble的类)
public class Bubble(){
}
2:在Bubble下创建主程序、交换类体、比较类体
public class Bubble(){
public static void sort(Comparable[] a){ ///a是数组Comparable的名称 a[]
}
public static boolean greater(Comparater i,Comparater j){ //创建布尔型的比较函数 返回0/1
}
public static void change(Comparater[] a,int i,int j) { //交换数组a[]中第i,j的位置
}
}
3:编写代码
public class Bubble(){
public static void main(String[] agrs){
sort(a);
}
public static void sort(Comparable[] a){ ///a是数组Comparable的名称 a[]
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length-1;j++){
if(greater(a[i],a[j]>0){
change(a,i,j);
}
}
}
for(int i=0;i<a.length-1;i++){
System.out.println(a[i]);
}
}
public static boolean greater(Comparable i,Comparater j){ //创建布尔型的比较函数 返回0/1
return i.compareTo(j); ///compareTo自带比较函数 如果i>j返回1 j<i返回-1 相等返回0
}
public static void change(Comparable[] a,int i,int j) { //交换数组a[]中第i,j的位置
Comparable temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
///Comparable 表示可排序的
##选择排序
(*/一个判断类体:判断比较的两个数谁大*/)
(*/一个交换位置类体:用来交换两个数的位置)
(*/从序列中选出最小的排到前面位置,依次进行)
#方法
1:创建一个select的类
public class select(){
}
2:在加入各个类体
public class select(){
public static void main(String[] agrs){
}
public static void sort(Comparable[] a){
}
public static boolean greater(Comparable v,Comparable w){
}
public static void change(Comparable[] a,int i,int j){
}
}
3:编程
public class select(){
public static void main(String[] agrs){
int a[10]={2,3,4,2,23,1,5,3,4,9}
sort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void sort(Comparable[] a){
for(int i=0;i<a.length-2;i++){
//定义一个变量,记录最小值的位置
int minIndex =i;
for(int j=i+1;j<a.length;j++){
if(greater(a[minIndex],a[j])){ //比较两处的大小
minIndex=j;
}
}
change(a,i,minIndex);
}
}
public static boolean greater(Comparable v,Comparable w){
return v.compareTo(w);
}
public static void change(Comparable[] a,int i,int j){
Comparable temp =a[i];
a[i]=a[j];
a[j]=temp;
}
}
##插入排序
(通过比较后面的数与第一个的大小进行插入)
#方法
1:创建类
public class Insertion(){
}
2:创建类体
public static void main(String[] agrs){
}
public static void sort(Comparable[] a){
}
public static boolean greater(Comparable v,Comparable w){
}
public static void change(Comparable[] a,int i,int j){
}
3:编程
public class Insertion(){
public static void main(String[] agrs){
int a[10]={4,3,2,10,6,4,3,7,4,3}
sort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void sort(Comparable[] a){
for(int i=1;i<a.length;i++){
for(int j=i;i>=0;j--){
if(greater(a[j-1],a[j]){
change(a,j-1,j)}
else break;
}
}
}
//比较两数的大小
public static boolean greater(Comparable v,Comparable w){
return v.compareTo(w);
}
//交换两数的位置
public static void change(Comparable[] a,int i,int j){
Comparable temp =a[i];
a[i]=a[j];
a[j]=temp;
}
}