出发点:
常见算法的学习和使用,保持编码的惯性和手感。避免学过、写过、忘过。
冒泡算法:
/**
* 逻辑流程是:首选选定数组中的位置,其次是把
*/
public static void Bubble(int[] unOrderedInts){
for (int i = 0; i < unOrderedInts.length; i++) {
for (int j = 0; j < unOrderedInts.length; j++) {
if (unOrderedInts[i]<unOrderedInts[j]){
int temp=unOrderedInts[i];
unOrderedInts[i]=unOrderedInts[j];
unOrderedInts[j]=temp;
}
}
}
Arrays.stream(unOrderedInts).forEach(System.out::println);
}
选择排序算法:
/**
* 选择排序
* @param unOrderedInts
*/
public static void SelectOrder(int[] unOrderedInts){
for (int i = 1; i < unOrderedInts.length; i++) {
//取出当前的未排序数
int tmp = unOrderedInts[i];
int j=i;
while (j>0&&tmp<unOrderedInts[j-1]){
unOrderedInts[j]=unOrderedInts[j-1];
j--;
}
if (i!=j){
unOrderedInts[j]=tmp;
}
}
Arrays.stream(unOrderedInts).forEach(System.out::println);
}
插入排序算法:
/**
* 插入排序
* @param unOrderedInts
*/
public static void InsertOrder(int[] unOrderedInts){
for (int i = 0; i < unOrderedInts.length; i++) {
int min=i;
// 每次都从当前的数字开始进行比较
for (int j = i+1; j < unOrderedInts.length; j++) {
//捕捉比当前min指定的数字小的数
if (unOrderedInts[min]>unOrderedInts[j]){
min=j;
}
}
//记录当前位置的数
int tmp=unOrderedInts[i];
//将当前位置赋值为后续数列当中最小的数
unOrderedInts[i]=unOrderedInts[min];
//将后续数列中的小数替换为当前值
unOrderedInts[min]=tmp;
}
Arrays.stream(unOrderedInts).forEach(System.out::println);
}