插入算法
对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入
public static void main(String[] args) {
//插入排序
Integer str[] ={6,5,4,3,2,1};
for(int i=0;i<str.length-1;i++){
for(int j=i+1;j>0;j--) {
int temp;
if(str[j]<str[j-1]){
temp=str[j];
str[j]=str[j-1];
str[j-1]=temp;
}
}
}
}
}
冒泡排序
for(int i=0;i<str.length-1;i++){ //控制循环,不控制业务逻辑
//最佳情况下(本来就是有序的),减少循环次数
boolean flag=false;
for(int j=0;j<str.length-i-1;j++){
int temp;
if(str[j]>str[j+1]){
temp =str[j];
str[j]=str[j+1];
str[j+1]=temp;
flag=true;
}
}
if(!flag){
return;
}
}
for (Integer i:str) {
System.out.println(i);
}
}
选择排序
每轮找到本轮循环里的最小值
//选择排序(找出最小值。然后进行叫唤)
for(int i=0;i<str.length;i++){ //控制每次找到最小值
int min=i;//初始化最小值的索引
for(int j=i;j<str.length;j++){
if(str[j]<=str[min]){
min=j;
}
}
int temp=0;
temp=str[i];
str[i]=str[min];
str[min]=temp;
}
未完........ 待补充