首页 > 编程知识 正文

用选择法对数组排序,归并排序算法详解

时间:2023-05-04 20:37:49 阅读:110490 作者:2507

文章目录数组一、数组定义zqdxh、数组包含的数据类型三、获取数组长度四、数组遍历五、数组切片六、数组置换七、数组删除八、数组添加元素九、排序算法1 .基于冒泡的排序算法2 .直接选择排序

数组一、数组定义方法

方法1 :

数组名称=(value0 value1 value2 …)

zqdxh:

数组名称=([0]=value [1]=value [2]=value …)

方法3 :

列表名称=“value0 value1 value2 …”

数组名称=$列表名称)

方法4 :

数组名称[0]=“value”

数组名称[1]=“value”

数组名称[2]=“value”

二.数组中包含的数据类型数值类型

字符类型(字符串) )使用或的定义,以防止元素中包含空格或用空格分隔元素

三.获取序列长度ABC=(12345678 )。 通过定义#数组echo$ ) ABC[*] )或echo$ ) ABC[@] )获取数组长度

读取某索引赋值

四.数组遍历[root@promote d3]#vim 3.sh#! /复杂土豆/Basharr=(54321 ) for i in ${arr[@]}do echo $idone

五、数组片Arry=(123456 ) echo ${arry[*]} echo ${arry[@]} #输出整个数组,其中)与@相同,echo $ { arry [ @ ] 3360033603600

六.序列重排方法一:单一重排

Arry=(123456 ) echo $ { arry [ * ] } arry [0]=66 echo $ { arry [ * ] }

zqdxh :多重取代、永久取代

arrp=$ { arry [ * ]/6/88 } arry=($ arrp ) echo ${arry[*]}七、删除数组删除echo ${arry[*]}unset arry #删除整个数组

八.如何在数组中添加元素一:单一添加

ARR=(123456 )7) echo $ { arr [6] } arr [7]=8arr [8]=9echo $ { arr [ * ] }

zqdxh )如果不删除任何内容,最大索引值为元素长度减少一个

九.排序算法排序算法顾名思义,我们想象下站队的时候是怎么排序的,来时看到谁最高就让谁站到第一位,然后再找第二高的,以此类推。我们看出高低也是互相比较得出的,计算机也可以使用这个方法,首先找到最高的,然后是第二高的,这种方法就是冒泡排序,因为他是按照大小一个一个的得到结果,就像是水泡浮出水面一样。1 .冒泡排序算法

根据气泡排序原理,从第一位开始比较,因为是43,所以改变位置

然后比较4和1,继续改变位置

47所以,即使不改变位置,最大的也会变成7

76所以,上面会起泡沫

到目前为止达到了最大的数7,但接下来还是开始寻找从第一名到第二大的数。

这样就完成了第二个数的搜索,发现冒泡算法的基本原理是将最大的点悬浮在较高的位置。 只要一次选择现在最大的数量,6个数字循环5次就可以完全排序。 因为最后两个数字的排序会按顺序有序。

因为6个数字,需要5次循环,次数太多,所以我的照片不一一展示。

class untitled { publicstaticvoidmain (string [ ] args ) int[]array=newint ) } { 4,3,1,7,6,2 }; //需要我们排序的数组int temp=0; //临时变量//循环次数的数组长度为-1次即可。 对于两个数字,//i变量表示从数组的最后一位开始的当前最大数量for(intI=array.length-1; i0; I--}{for(intj=0; ji; j//内层导线0到该位置的所有元素(if(array[j]array[j1] ) /如果大,则更换,否则不更改({ temp=array[j 1] ); array[j 1]=array[j]; array[j]=temp; }//排序后的这种格式也可以使用java独有的常规遍历和数组转换字符串方法for(intele:array ) system.out.println.直接选择排序选择排序(select ) 这是一种从要排序的数据元素中首先选择最小(或最大)元素,将其放在序列的开头,然后在剩下的未排序元素中查找最小(大)元素,将其放在已排序序列的末尾的机制。 因此,在要排序的所有数据元素的数量都为零之前,选择排序是一种不稳定的排序方法。

# includeiostreamusingnamespacestd; voidselectionsort(inta[],int n ) {int t,flag; for(intI=0; 合1; I ) ) {flag=i; for(intj=I1; jn; j () if ) a[flag]a[j] ) flag=j; }t=a[i]; a[i]=a[flag]; a[flag]=t; }}int main () inta(8)={ 8,9,1,3,5,2,7,6 }; 选择(a,8 ); for(intI=0; i8; I ) couta[i]endl; 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。