插入排序
插入排序可以形象理解为打扑克牌,把需要插入的数据和已经排序好的一一比较,插入合适的位置。
/**
* 插入排序,从大到小排序
*/
public static void charuPX(){
System.out.print("原数据是:");
for(int i=0,len=arry.length;i<len;i++){
System.out.print(arry[i]+"、");
}
System.out.print("\n");
for(int i=0,len=arry.length;i<=len-2;i++){
if(arry[i+1]>arry[i]){
for(int j=0;j<=i;j++){
if(arry[j]<arry[i+1]){
int temp=arry[i+1];
arry[i+1]=arry[j];
arry[j]=temp;
}
}
}
}
System.out.print("插入排序后的数据是:");
for(int i=0,len=arry.length;i<len;i++){
System.out.print(arry[i]+"、");
}
}
冒泡排序
相邻元素比较,每次确定最大/最小值的位置
package paxiu;
import static utils.common_utils.output;
/**
* 交换排序-冒泡排序
*
* @author hp
*
*/
public class maopapPX {
private static int[] arry = { 23, 31, 24, 21, 123, 1, 34 };
public static void main(String[] args) {
System.out.print("\n原数据是:");
output(arry);
PX();// 排序
System.out.print("\n插入排序后的数据是:");
output(arry);
}
/**
* 冒泡排序,从小到大
*/
private static void PX() {
for (int i = 0, len = arry.length; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (arry[j + 1] < arry[j]) {
int temp = arry[j + 1];
arry[j + 1] = arry[j];
arry[j] = temp;
}
}
}
}
}
选择排序
package paxiu;
import static utils.common_utils.output;
/**
* 选择排序
*
* @author HL
*
*/
public class xuanzePX {
private static int[] arry = { 23, 31, 24, 21, 123, 1, 34 };
public static void main(String[] args) {
System.out.print("\n原数据是:");
output(arry);
PX();// 排序
System.out.print("\n插入排序后的数据是:");
output(arry);
}
/**
* 从大到小的选择排序
*/
private static void PX() {
for (int i = 0, len = arry.length; i < len; i++) {
for (int j = i; j < len; j++) {
if (arry[i] > arry[j]) {
int temp = arry[i];
arry[i] = arry[j];
arry[j] = temp;
}
}
}
}
}