您身边的网站建设专家
成功案例

【建站服务】泗阳淘宝装修/泗阳京东店铺设计/泗阳拼多多网店装修公司/泗阳企业网店开通申请-网店装修设计-域名申请

日期: 2022-09-21 04:09:45 浏览数:5


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


泗阳淘宝装修/泗阳京东店铺设计/泗阳拼多多网店装修公司/泗阳企业网店开通申请-网店装修设计

网站建设.png

c ChooseSort(int[] array){        this.array = array;        this.length = array.length;    }        /**     * 打印数组中的所有元素     */    public void display(){        for(int i: array){            System.out.print(i+" ");        }        System.out.println();    }        /**     * 选择排序算法     */    public void chooseSort(){        for(int i=0; i<length-1; i++){            int minIndex = i;            for(int j=minIndex+1;j<length;j++){                if(array[j]<array[minIndex]){                    minIndex = j;                }            }            int temp = array[i];            array[i] = array[minIndex];            array[minIndex] = temp;        }    }        public static void main(String[] args){        int[] array={100,45,36,21,17,13,7};        ChooseSort cs = new ChooseSort(array);        System.out.println("排序前的数据为:");        cs.display();        cs.chooseSort();        System.out.println("排序后的数据为:");        cs.display();    }}

(5)选择排序总结:

N个元素需要排序N-1轮;

第i轮需要比较N-i次;

N个元素排序,需要比较n(n-1)/2次;

选择排序的算法复杂度仍为O(n*n);

相比于冒泡排序,选择排序的交换次数大大减少,因此速度要快于冒泡排序

四、插入排序

插入排序是简单排序中最快的排序算法,虽然时间复杂度仍然为O(n*n),但是却比冒泡排序和选择排序快很多。

(1)原理:

(2)例子:

待比较数据:7, 6, 9, 8, 5,1


排序是简单排序中最快的排序算法,虽然时间复杂度仍然为O(n*n),但是却比冒泡排序和选择排序快很多。


(1)原理:


1、将指针指向某个元素,假设该元素左侧的元素全部有序,将该元素抽取出来,然后按照从右往左的顺序分别与其左边的元素比较,遇到比其大的元素便将元素右移,直到找到比该元素小的元素或者找到最左面发现其左侧的元素都比它大,停止;

2、此时会出现一个空位,将该元素放入到空位中,此时该元素左侧的元素都比它小,右侧的元素都比它大;

3、指针向后移动一位,重复上述过程。每操作一轮,左侧有序元素都增加一个,右侧无序元素都减少一个。

(2)例子:


待比较数据:7, 6, 9, 8, 5,1


第一轮:指针指向第二个元素6,假设6左面的元素为有序的,将6抽离出来,形成7,_,9,8,5,1,从7开始,6和7比较,发现7>6。将7右移,形成_,7,9,8,5,1,6插入到7前面的空位,结果:6,7,9,8,5,1

第二轮:指针指向第三个元素9,此时其左面的元素6,7为有序的,将9抽离出来,形成6,7,_,8,5,1,从7开始,依次与9比较,发现9左侧的元素都比9小,于是无需移动,把9放到空位中,结果仍为:6,7,9,8,5,1

第三轮:指针指向第四个元素8,此时其左面的元素6,7,9为有序的,将8抽离出来,形成6,7,9,_,5,1,从9开始,依次与8比较,发现8<9,将9向后移,形成6,7,_,9,5,1,8插入到空位中,结果为:6,7,8,9,5,1

第四轮:指针指向第五个元素5,此时其左面的元素6,7,8,9为有序的,将5抽离出来,形成6,7,8,9,_,1,从9开始依次与5比较,发现5比其左侧所有元素都小,5左侧元素全部向右移动,形成_,6,7,8,9,1,将5放入空位,结果5,6,7,8,9,1。

第五轮:同上,1被移到最左面,最后结果:1,5,6,7,8,9。

(3)编码分析:


需要两层循环,第一层循环index表示上述例子中的指针,即遍历从坐标为1开始的每一个元素;第二层循环从leftindex=index-1开始,leftindex--向左遍历,将每一个元素与i处的元素比较,直到j处的元素小于i出的元素或者leftindex<0;遍历从i到j的每一个元素使其右移,最后将index处的元素放到leftindex处的空位处。


(4)代码实现:


实例

package com.test.insertsort;

/**

 * 插入排序算法:

 * 1、以数组的某一位作为分隔位,比如index=1,假设左面的都是有序的.

 * 

 * 2、将index位的数据拿出来,放到临时变量里,这时index位置就空出来了.

 * 

 * 3、从leftindex=index-1开始将左面的数据与当前index位的数据(即temp)进行比较,如果array[leftindex]>temp,

 * 则将array[leftindex]后移一位,即array[leftindex+1]=array[leftindex],此时leftindex就空出来了.

 * 

 * 4、再用index-2(即leftindex=leftindex-1)位的数据和temp比,重复步骤3,

 * 直到找到<=temp的数据或者比到了最左面(说明temp最小),停止比较,将temp放在当前空的位置上.

 * 

 * 5、index向后挪1,即index=index+1,temp=array[index],重复步骤2-4,直到index=array.length,排序结束,

 * 此时数组中的数据即为从小到


泗阳淘宝装修/泗阳京东店铺设计/泗阳拼多多网店装修公司/泗阳企业网店开通申请-网店装修设计


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站