- 前言
- 冒泡排序
- 算法步骤
- 代码实现:
- 选择排序
- 算法步骤:
- 代码实现:
排序算法是数据结构与算法中一种基础的算法,排序算法分为内部排序和外在排序。内部排序在内存中进行,而外部排序因要排序的数据量大,内存无法一次性容纳这么多,所以在排序过程中访问外存。我们常见的内部排序算法有冒泡排序,选择排序,快速排序,堆排序,基数排序,桶排序等
冒泡排序冒泡排序是一种简单的排序,不断重复的比较,如果前面的比他大那么就交换,直到最终没有交换的值为止,排序完成。
算法步骤1.相邻的两个数相比较,如果前面的数比后面的大,那么交换。
2从开始两个数,直到最后两个数,那么最后的那个数应该是最大的。
3.重复步骤一,不需要比较最后那个。
4.随着前面的步骤最终比较完成。
public class sort {
public static void main(String[] args) {
int temp=0;
int array[]={44,33,99,22,23,42,14,32};//定义一个数组
for(int i=1;i
for(int j=0;j//每循环一次就减一次循环。
if(array[j]>array[j+1]){//满足条件就输出
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
for(int k=0;k //遍历排序之后的数组
System.out.println(array[k]);
}}
}
分析时间复杂度:平均复杂度为0(n的平方)
选择排序选择排序就是从一个数组中找到最小的那个数,把最小的那个数和位置为一的交换,不断重复此步骤,知道排序结束。
算法步骤:1.找到最小的那个数
2.把最小的数放在第一个位置,第一个位置的数放在之前最小的数的位置。
3.重复以上步骤,知道排序结束。
public static void quilksort(){
//定义一个整数类型数组,用于排序的原始数据
int[] array={3,5,1,2,4};
//第一个循环用来遍历数组中的所有数字
for (int i = 0; i < array.length; i++) {
//初始化一个变量,用来记录最小数字的下标。初始默认假设第一个数字就是最小数字
int min = i;
//第二个循环,通过比较获取数组中最小的数字的下标。
for (int j = i+1; j < array.length ; j++) {
//如果找到更小的数字,
if (array[min]>=array[j]) {
//将min变量的值修改为新的最小数字的下标。
min = j;
}
}
//所有数字一个个比较结束之后,就能确认那个数字最小了。
//将最小的数字替换到第一个位置,将第一个位置的数字放到最小数字原来的位置,就是一次交换。
int temp=array[i];
array[i]=array[min];
array[min]=temp;
}
//将排序之后的数组打印出来。
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
}
}
}
}
分析时间复杂度:平均复杂度为0(n的平方)
动画演示



