《算法》选择排序、插入排序、冒泡排序

1.选择排序

//选择排序,《算法》p156
package algorithm;

public class Selection_p156{
    public  void sort(int[] a){
        int N = a.length;//数组长度
        for(int i = 0; i < N-1; i++){
            for(int j = i+1; j < N; j++){
                if(a[j] < a[i]){
                    int temp = a[j];
                    a[j] = a[i];
                    a[i] = temp;
                }
            }
        }
        for(int i = 0; i < N; i++){
            System.out.println(a[i]);
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Selection_p156 test = new Selection_p156 ();
        int[] a = {5,4,3,2,1};
        test.sort(a);
    }
}

思路
将第一个元素与剩余所有元素相比,如果有比第一个元素小的,则互换
再将第二个元素与剩余所有元素相比,如果有比第二个元素小的,则互换
……

2.插入排序

//插入排序,《算法》p1
package algorithm;

public class Insertion_p157 {
    public void sort(int[] a){
        int N = a.length;
        for(int i = 1; i < N; i++){
            for(int j = i; j > 0; j--){
                if (a[j] < a[j-1])
                {
                    int temp = a[j];
                    a[j] = a[j-1];
                    a[j-1] = temp;
                }
            }
        }
        for(int i = 0; i < N; i++){
            System.out.println(a[i]);
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Insertion_p157 test = new Insertion_p157();
        int[] a = {5,4,3,2,1};
        test.sort(a);
    }

}

思路
将第i个元素插入到前i-1个元素的适当位置中,插入过程为
当前元素小于上一个元素时,则互换位置,不小于时就开始将第i+1个元素插入到前i个元素的适当位置中。

3.冒泡排序

//冒泡排序
package algorithm;

public class Bubble {
    public void sort(int[] a){
        int N = a.length;
        for(int i = 0; i < a.length-1; i++){
            for(int j = 0; j < a.length-1-i; j++){
                if (a[j] > a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }               
        }
        for(int i = 0; i < N; i++){
            System.out.println(a[i]);
        }

    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Bubble test = new Bubble();
        int[] a = {5,4,3,2,1};
        test.sort(a);
    }
}

思路
第一次循环将最大的数排到最后一个,第二次循环将第二大的数排到倒数第二个……
每次循环都从第一个元素开始相邻元素进行比较,如果当前元素比下一个元素更大,则互换,如不大于,则比较下一个和下下个元素……

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值