美文网首页
排序查找

排序查找

作者: 范小白Van | 来源:发表于2018-04-28 21:07 被阅读14次

    冒泡排序法

    class Bubble
    {
        public void sort(int[] arr)
        {
            int temp=0;
            
            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+1];
                        arr[j+1]=arr[j];
                        arr[j]=temp;
                        
                        //another method
                        temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
        }
    }
    

    基本思想:

    1. 一个数组从头开始两两比较,大的数往前移动一个位置,这样一轮比较之后,数组的最后一个元素为该数组的最大值;
    2. 不考虑当前数组的最大值,将数组长度减一,再从头开始两两进行比较,循环之后得到数组中第二个最大的元素;
    3. 数组再减1,开始循环,得到第三个最大的元素。重复循环,最终得到一个从小到大排列的数组。

    选择排序

    class Select
    {
        public void sort(int[] arr)
        {
            int temp=0;
            
            for(int i=0;i<arr.length-1;i++)
            {
                int minValue=arr[i];
                int minIndex=i;
                
                //find the index of the minimum value
                for(int j=i;j<arr.length;j++)
                {
                    if(minValue>arr[j])
                    {
                        minValue=arr[j];
                        minIndex=j;
                    }
                }
                
                //put the minimum value into the arr[i]
                temp=arr[i];
                arr[i]=minValue;
                arr[minIndex]=temp;
            }
        }
    }
    

    基本思想:

    1. 将数组最前面的一个元素设为最小的元素;
    2. 不断和后面的元素比较,如果小于最小值,那么交换值和下标(取得最小值和下标);
    3. 将最小值放入最前面的元素,最终得到一个从小到大的数组。

    相关文章

      网友评论

          本文标题:排序查找

          本文链接:https://www.haomeiwen.com/subject/pnawlftx.html