数组的排序,冒泡法,快速排序法

1.冒泡法排序

/*
     * 冒泡法排序 :在要排序的一组数中,对当前还未排好序的范围内的全部数,自左而右对相邻的两个数
     *          相邻的两个数的交换
     */
    public void bubbleSort(int[] num) {
        int temp = 0;
        for(int i=0;i<num.length-1;i++){

            for(int j=0;j<num.length-1-i;j++){

                if(num[j]>num[j+1]){

                    temp=num[j];
                    num[j]=num[j+1];
                    num[j+1]=temp;
            }
        }
        }
    }

调用:       int[] num = new int[] { 2, 4, 5, 1, 6, 8 };       Shuzu sz1 = new Shuzu();        sz1.bubbleSort(num);        for (int i = 0; i < num.length; i++) {            System.out.println("冒泡法排序=" + num[i] + " ");        }

2.快速排序法:最大的数放在最后边

// 排序:找到最大的数依次往后排放
    public void Sort(int[] nums) {
        int maxPost ,temp;//循环里面尽量不定义变量
        for (int k = 0; k < nums.length - 1; k++)// 执行的次数
        {
            maxPost = 0;//假设第一个数是最大的,循环一次就会找到一个大数所以是-K
            for (int i = 1; i < nums.length - k; i++) {

                if (nums[maxPost] < nums[i]) {

                    maxPost = i;
                }
            }

            temp = nums[nums.length - k - 1];//每次交换的都是最后一个数
            nums[nums.length - k - 1] = nums[maxPost];
            nums[maxPost] = temp;
        }
    }

调用:int[] num = new int[] { 2, 4, 5, 1, 6, 8 };       Shuzu sz = new Shuzu();        sz.selectSort(num);         for (int i = 0; i < num.length; i++)       {          System.out.println(num[i] + " ");        }
时间: 2025-01-03 19:47:03

数组的排序,冒泡法,快速排序法的相关文章

PHP冒泡与快速排序法

快速排序法:function sortArray($arr){    $count=count($arr);    for($i=0;$i<$count-1;$i++){        for($j=$i+1;$j<$count;$j++){            if($arr[$i]>$arr[$j]){                $tem=$arr[$i];                $arr[$i]=$arr[$j];                $arr[$j]=$t

排序算法:快速排序法

快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都小于或等于基准值, 基准右边的元素值 都大于基准值.然后以基准数为界,分左和右两个子序列,递归调用,直至完成排序. 该方法的基本思想:一个未排序数组s[] 1.先从数列中取出一个数作为基准数(一般取第一个),保存到temp=s[l],此时第一个数组形成一个“坑”: 2.分区过程, i = l 和 j = r  (1)此时s[i]形成一个“坑”,从j向前遍历,直至找到一个s[j]<te

闲来无事,温习一下快速排序法

快速排序法,还是很常用的.不论是面试还是写代码.这里说一下怎么coding出快速排序法.至于什么复杂度之类的,请参考http://zh.wikipedia.org/wiki/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F#C. 快速排序法的核心是分治法(Divide and conquer),也就是把一个数组一分为二,二分为四....直到不能分了,也就完成排序了.所以快速排序法也就是怎么分的问题.怎么分?当然是按大小分了.所以快速排序法的升序步骤描述为: 选择一个基准元

ava对数组元素排序的三种方式

JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来.选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组. package com.study.test; import java.util.Arrays; public class TestArrSort {   

排序算法(交换法,选择法,插入排序,冒泡法,快速排序算法,C语言举例)

交换法:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动. 简单选择排序:的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕. 插入排序法:有一个已经有序的

C#版 选择法、冒泡法、插入法和快速排序法分析与对比(一)

前言 之前老师就讲过了选择法和冒泡法,之后又提到了插入法和排序法,今天做了一个小DEMO,对比了一下四种方法的效率,当然看了很多大牛也博客,其实算法还设计了时间复杂度和空间复杂度,对于这两个概念,我只能从表面上进行理解,其中涉及到了很多数学的问题,所以就不展开写了. 选择排序 冒泡法 插入法 快速排序法 这部分知识比较新,而且内容比较多,所以打算单独另外总结一遍博客,来详细的总结一下这个方法~ DEMO(比较三个算法所用时间) 先说一下设计的思路,生成要求个数的不重复的随机数,将随机数循环赋给l

php四种基础算法:冒泡,选择,插入和快速排序法

转自:http://www.php100.com/html/php/rumen/2013/1029/6333.html 许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的.下面是我按自己的理解,将四个方法分析一遍. 需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序. $arr(1,43,5

php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程

许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西.但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的.下面兄弟连PHP培训 小编将四个方法分析一遍. 需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序法 * 思路分析:法如其名,就是像冒泡一样,每次

php排序介绍_冒泡排序_选择排序法_插入排序法_快速排序法

这里我们介绍一些常用的排序方法,排序是一个程序员的基本功,所谓排序就是对一组数据,按照某个顺序排列的过程. 充效率看 冒泡排序法<选择排序法<插入排序法 排序分两大类: 内部排序法 交换式排序法 冒泡法 基本思想: 冒泡排序法 案例: 1234567891011121314151617181920212223242526 //简单的$arr=array(0,5,-1); //现在我们把函数毛片封装成函数,利用以后使用//数组默认传递的是值,不是地址,&是地址符function bubb