首页 > 编程知识 正文

排序算法有哪些(彩票3D高手绝密算法公式)

时间:2023-05-04 07:45:35 阅读:2202 作者:4582

一、插入排序

1.基本思想:

将一次要排序的一个数据元素插入到前面已经排序的序列中适当的位置,使序列仍然有序;直到插入所有要排序的数据元素。

2.分类过程:

[示例]:

[初始关键词] [49] 38 65 97 76 13 27 49

J=2(38) [38 49] 65 97 76 13 27 49

J=3(65) [38 49 65] 97 76 13 27 49

J=4(97) [38 49 65 97] 76 13 27 49

J=5(76) [38 49 65 76 97] 13 27 49

J=6(13) [13 38 49 65 76 97] 27 49

J=7(27) [13 27 38 49 65 76 97] 49

J=8(49) [13 27 38 49 49 65 76 97]

过程插入排序(Var R :文件类型);

//插入并排序R [1.n]以递增的顺序,其中R[0]是保护柱/

开始

I :=2到n do//插入R[2],R[n]//

开始

R[0]:=R[I];j :=I-1;

而R[0]

开始

R[J 1]:=R[J];//向后移动大于R[I]的元素/

J :=J - 1

目标

R[J 1]:=R[0];//插入R[I] //

目标

结束;//插入排序/

二、选择排序

1.基本思想:

每次行程从要排序的数据元素中选择最小(或最大)的元素,并将其放在有序序列的末尾,直到所有要排序的数据元素都完成。

2.分类过程:

[示例]:

初始关键字[49 38 65 97 76 13 27 49]

第一项命令后的第13项[38 65 97 76 49 27 49]

二阶后的13 27[65 97 76 49 38 49]

13 27 38在第三阶之后[97 76 49 65 49]

第四阶之后,13 27 38 49 [49 97 65 76]

第五阶后的13 27 38 49 49[97 97 76]

13 27 38 49 49 76 [76 97]

第七阶后,13 27 38 49 49 76 76 [97]

最终排名结果13 27 38 49 49 76 76 97

程序选择排序(Var R :文件类型);//直接选择排序R [1.n]//

开始

I :=1到N-1 do//Do n-1遍选择排序//

开始

k :=I;

对于J :=I 1至N Do //选择当前无序区域R [i. n]中的最小元素R[K]//的值

开始

如果R[J]

结束;

如果K;I//然后交换R[I]和R[K] //

开始温度:=R[I];R[I]:=R[K];R[K] :=温度;结束;

目标

结束;//选择排序/

第三,泡沫

1.基本思想:

比较要排序的数据元素的大小,当发现这两个数据元素的顺序相反时,就交换它们,直到没有数据元素的顺序相反。

2.分类过程:

假设排序后的数组r [1.n]垂直竖立,每个数据元素被视为一个加权气泡。根据轻气泡不能在重气泡之下的原理,从下往上扫描阵列r,任何违反这个原理的轻气泡都会被扫描,使其“上浮”,如此反复,直到最后任意两个气泡都是上面的轻气泡,下面的重气泡。

[示例]:

49 13 13 13 13 13 13 13

38 49 27 27 27 27 27 27

65 38 49 38 38 38 38 38

97 65 38 49 49 49 49 49

76 97 65 49 49 49 49 49

13 76 97 65 65 65 65 65

27 27 76 97 76 76 76 76

49 49 49 76 97 97 97 97

过程冒泡排序(var r : Filetype)//通过从下往上扫描进行冒泡排序/

开始

For I := 1 To N-1 Do //做N-1趟排序//

begin

NoSwap := True; //置未排序的标志//

For J := N - 1 DownTo 1 Do //从底部往上扫描//

begin

If R[J+1]

begin

Temp := R[J+1]; R[J+1 := R[J]; R[J] := Temp;

NoSwap := False

end;

end;

If NoSwap Then Return//本趟排序中未发生交换,则终止算法//

end

End; //BubbleSort//

四、快速排序(Quick Sort)

1. 基本思想:

在当前无序区R[1..H]中任取一个数据元素作为比较的"基准"(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I+1..H](1≤I≤H),当R[1..I-1]和R[I+1..H]均非空时,分别对它们进行上述的划分过程,直至所有无序子区中的数据元素均已排序为止。

2. 排序过程:

【示例】:

初始关键字 [49 38 65 97 76 13 27 49〕

第一次交换后 〔27 38 65 97 76 13 49 49〕

第二次交换后 〔27 38 49 97 76 13 65 49〕

J向左扫描,位置不变,第三次交换后 〔27 38 13 97 76 49 65 49〕

I向右扫描,位置不变,第四次交换后 〔27 38 13 49 76 97 65 49〕

J向左扫描 〔27 38 13 49 76 97 65 49〕

(一次划分过程)

初始关键字 〔49 38 65 97 76 13 27 49〕

一趟排序之后 〔27 38 13〕 49 〔76 97 65 49〕

二趟排序之后 〔13〕 27 〔38〕 49 〔49 65〕76 〔97〕

三趟排序之后 13 27 38 49 49 〔65〕76 97

最后的排序结果 13 27 38 49 49 65 76 97

各趟排序之后的状态

Procedure Parttion(Var R : FileType; L, H : Integer; Var I : Integer);

//对无序区R[1,H]做划分,I给以出本次划分后已被定位的基准元素的位置 //

Begin

I := 1; J := H; X := R[I] ;//初始化,X为基准//

Repeat

While (R[J] >;= X) And (I

begin

J := J - 1 //从右向左扫描,查找第1个小于 X的元素//

If I

begin

R[I] := R[J]; //相当于交换R[I]和R[J]//

I := I + 1

end;

While (R[I] ; X //

begin R[J] := R[I]; //相当于交换R[I]和R[J]//

J := J - 1

end

Until I = J;

R[I] := X //基准X已被最终定位//

End; //Parttion //

Procedure QuickSort(Var R :FileType; S,T: Integer); //对R[S..T]快速排序//

Begin

If S

begin

Partion(R, S, T, I); //对R[S..T]做划分//

QuickSort(R, S, I-1);//递归处理左区间R[S,I-1]//

QuickSort(R, I+1,T);//递归处理右区间R[I+1..T] //

end;

End; //QuickSort//

五、堆排序(Heap Sort)

1. 基本思想:

堆排序是一树形选择排序,在排序过程中,将R[1..N]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中醉熏的牛排结点和孩子结点之间的内在关系来选择最小的元素。

2. 堆的定义: N个元素的序列K1,K2,K3,...,Kn.称为堆,当且仅当该序列满足特性:

Ki≤K2i Ki ≤K2i+1(1≤ I≤ [N/2])

堆实质上是满足如下性质的完全二叉树:树中任一非叶子结点的关键字均大于等于其孩子结点的关键字。例如序列10,15,56,25,30,70就是一个堆,它对应的完全二叉树如上图所示。这种堆中根结点(称为堆顶)的关键字最小,我们把它称为twddt堆。反之,若完全二叉树中任一非叶子结点的关键字均大于等于其孩子的关键字,则称之为大根堆。

3. 排序过程:

堆排序正是利用twddt堆(或大根堆)来选取当前无序区中关键字小(或最大)的记录实现排序的。我们不妨利用大根堆来排序。每一趟排序的基本操作是:将当前无序区调整为一个大根堆,选取关键字最大的堆顶记录,将它和无序区中的最后一个记录交换。这样,正好和直接选择排序相反,有序区是在原记录区的尾部形成并逐步向前扩大到整个记录区。

【示例】:对关键字序列42,13,91,23,24,16,05,88建堆

Procedure Sift(Var R :FileType; I, M : Integer);

//在数组R[I..M]中调用R[I],使得以它为完全二叉树构成堆。事先已知其左、右子树(2I+1

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