-
冒泡排序
冒泡排序是一种简单的排序算法,一次比较两个数,重复遍历数据好多次.
时间复杂度:O(n^2)
算法实现:
public static void bubbleSort(int[] numbers){
//定义一个中间变量
int temp=0;
//记录输入数字的长度
int size=numbers.length;
//循环遍历每一个数字进行与相邻数字进行比较
for (int i = 0; i <size-1 ; i++) {
for (int j = 0; j <size-1-i ; j++) {
if(numbers[j]>numbers[j+1]){
temp=numbers[j];
numbers[j]=numbers[j+1];
numbers[j+1]=temp;
}}}}
- 选择排序
在要排序的一组数中,选出最小的一个数与第一个位置的数交换;
然后在剩下的数当中再找最小的与第二个位置的数交换,
如此循环到倒数第二个数和最后一个数比较为止。
算法实现:
public static void Choose(int[] numbers){
//定义中间变量
int temp=0;
for (int i = 0; i < numbers.length; i++) {
int min=i;
for (int j = i; j < numbers.length; j++) {
if(numbers[j]<numbers[min]){
min=j;
}}
temp=numbers[i];
numbers[i]=numbers[min];
numbers[min]=temp;
} } }
-
快速排序
-
插入排序
基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
public static void insert(int[] numbers){
//定义中间变量
int temp=0;
int j=0;
for(int i = 0 ; i < numbers.length ; i++)
{
temp = numbers[i];
//假如temp比前面的值小,则将前面的值后移
for(j = i ; j > 0 && temp < numbers[j-1] ; j --)
{
numbers[j] = numbers[j-1];
}
numbers[j] = temp;
}
}