八种排序算法(java实现)

  • 冒泡排序
    冒泡排序是一种简单的排序算法,一次比较两个数,重复遍历数据好多次.
    时间复杂度: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;
}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值