データ構造章X:内部ソート

まず、内部ソート:注文した配列の長さの緩やかな拡大の記録処理

その中でも、ヒルソート不安定

ソート1.直接挿入:O(N * N)、O(1)

シーケンシャルサーチに基づく方法をソート

レコードすでにソート順序付きリストLは、ソートされたリスト内のレコードの数を増やし、新しいを取得します

0より小さい場合には、シフト素子よりも大きいされた後部の前方に、素子の前方の位置を見つけるために、前方から、センチネルであろう、一前の要素よりも大きいか否かを判定する2から出発することを特徴とビット、あなたがその要素よりも小さいが見つかるまで、

この時点で、その要素よりも小さくなっている場所の後に、この要素は滞在の友人に場所をセンチネルすべきです。

 

 

 

平均的なケースの直接挿入ソートO(N2)の時間複雑直接挿入ソートの追加スペースのレコードのみを必要とします。したがって、空間の複雑さはO(1)です。

ソート2.バイナリ挿入:O(N * N)

 

 

 3.ヒルは、ソート:不安定なソート方法

記録シーケンスいくつかのサブシーケンスそれぞれ、各サブ配列用の挿入ソート

そしていることを確認する必要があり、最後のインクリメントdがソートに等しい1挿入ソート後、すなわち全配列を

 

 

第二に、クイックソート:

その中でも、クイックソート不安定性の

並べ替え1.バブル:O(N * N)

2.クイックソート:Sortメソッド不安定O(nlogn)

每次都将最前面的那个元素当成是关键字进行排序。

设置lowhigh辅助比较和对换

首先对无序的记录序列进行“一次快速排序”,之后分别对分割所得两个子序列“递归”进行快速排序

 

时间复杂度分析:

 

 若待排记录的初始状态为按关键字有序时,快速排序将蜕化为起泡排序,其时间复杂度为O(n2)

三、选择排序

1.简单选择排序:O(n*n)

分析比较次数

 

 

2.树型选择排序:O(nlogn)

首先对n个记录的关键字进行两两比较,然后在其中「n/2]个较小者之间再进行两两比较,如此重复,直至选出最小关键字的记录为止。

分析空间

 该方法占用空间较多,除需输出排序结果的n个单元外,尚需n-1个辅助单元。

3.堆排序:是不稳定的排序方法!!!O(nlogn)

 

 

 

四、归并排序

就是将两个两个以上的有序表结合成一个新的有序表。

五、基数排列

1.多关键字的排列

分为MSD和LSD

前者是最高位优先行排列,需要分子序列

后者是最低位优先法,不需要进行子序列分配,而是直接对每个关键字都是整个序列参加排序

 

当对多关键字的记录序列进行LSD方法排序时,必须采用稳定的排序方法。

 

2.链式基数排列

 

 总结:各种排序方法的分析

时间性能:

1.平均的时间性能

O(n*n)的称为简单排序方法,O(nlogn)的称为高效排序方法,O(dn)的称为基数排序方法

 

 2.当待排序列关于关键字有序时:

 3.

 

空间性能:(指的是所需要的辅助空间大小) 

 

 

 

 

 不稳定排序:

 快速排序、希尔排序、堆排序:三个都是不稳定排序方法

おすすめ

転載: www.cnblogs.com/xxikwonxjlxi/p/12113342.html