(学习笔记)数组排序 冒泡式排序法 交换式排序法

本文详细介绍了两种常见的内部排序算法——冒泡排序和选择排序,并提供了具体的Java实现代码。通过对这两种算法的理解,初学者可以更好地掌握排序的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初学小白 里面会有很多错误 仅记录每天的点滴所用 还望谅解 尽请指出。

排序:将一群数组,按照指定的顺序进行排列的过程

排序法
内部排序法:指将需要处理的所有数据加载到内部存储器中进行排序
包括 交换式排序法  选择式排序法  插入式排序法
外部排序法:数据量过大无法加载于内存中。需要借助外部存储进行排序
包括:合并排序法和直接合并排序法

交换式排序法
冒泡排序法:

通过对待排序的序列从后向前依次比较相邻数据大小,根据数据大小判断是否发生顺序交换


package com.yyf;

public class Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    int arr[]={4,6,3,2,5,10,-7};
    Bubble b= new Bubble();
    b.sort(arr);  
    }
}
class Bubble{    //冒泡排序法
	public void sort(int arr[]){
		int temp=0;                         //中间变量 temp
	    for(int i=0;i<arr.length-1;i++){    //外层循环 决定数组一共进行几次排序
	    	for(int j=0;j<arr.length-1-i;j++){//内层循环 逐个比较
	    		if(arr[j]>arr[j+1]){
	    			temp=arr[j];
	    			arr[j]=arr[j+1];
	    			arr[j+1]=temp;
	    		}
	    	}
	    }
	    for(int i=0;i<arr.length;i++){
	    	System.out.print(arr[i]+" ");    //遍历数组 输出
	    }
	}
}

选择排序法:

第一次从R[0]到R[n-1]中选取最小值 与R[0]交换,第二次从R[1]到R[n-1]中选取最小值与R[1]交换
直到全部选出最小值且交换 共选择n-1次。代码演示为:


public class Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    int arr[]={4,6,3,2,5,10,-7};
    Select s= new Select();
    s.sort(arr);
    }

}
class  Select{
	public void sort(int arr[]){
		int  temp =0;
		for(int j=0;j<arr.length;j++){         //外层循环 决定循环层数
			int min=arr[j];      //拟定数组最小值
			int minIndex=j;      //记录最小值的下标 
			for(int k=j+1;k<arr.length;k++){  //内层逐渐比较
				if(min>arr[k]){               //把J与(K以及K后)的各个元素进行比较
					min=arr[k];               //找出其中的最小值
					minIndex=k;
				}
			}
			temp=arr[j];                  //最小值与J交换 进行排序
			arr[j]=arr[minIndex];
			arr[minIndex]=temp;
		}
		 for(int i=0;i<arr.length;i++){
		    	System.out.print(arr[i]+" ");
	}
}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值