实验五

简介: 实验五  排序   院 、系  海师计教系  班级 计本二班 学   号  200624101101  姓名  杨振平 完成日期  2007-12-19   源程序名 123.cpp   一、题目 定义一个无序序列,使用插入排序、希尔排序、快速排序及堆排序等各种内部排序方法使之有序。

实验五  排序

 

院 、系

 海师计教系

 班级

计本二班

  

 200624101101

 姓名

 杨振平

完成日期

 2007-12-19  

源程序名

123.cpp

 

一、题目

定义一个无序序列,使用插入排序、希尔排序、快速排序及堆排序等各种内部排序方法使之有序。

二、需求分析      

本程序在Windows环境下用用Visual C++编写,完成程序内部排序算法的实现:

三、概要设计

主函数中调用

Bubble_Sort();//起泡排序

              InsertSort();//直接插入排序

              SelectSort();//简单选择排序

              PrintfQuickSort();//快速排序

              ShellSort();//希尔排序

              HeapSort();//堆排序

6种排序算法函数

四、测试结果

要排序的随机数组是:

  106   44   82   98   43  198    3   70   84  170

  124    3   87  148  146   86   23   58   18  138

  114   15   55  172  113  195   24  192  154  133

   52  109  146   58   43  101  192   24   24  112

  138  102   70   40  147  186   91    3  192   92

   28  126   33   20    2  171  162   10  111  101

  172  183  174  186  146    3  189    2  122  142

  186  122  114  131  191   73  123  103  113   65

   41  148   66  142  126  123   60  144   31  150

   70   36    1   77   61  141  146  186   34  176

 

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

1

*******起泡排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:4950

移动次数为:6927

 

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

2

*******直接插入排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:2403

移动次数为:2505

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

3

*******简单选择排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:4950

移动次数为:285

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

4

*******快速排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:908

移动次数为:460

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

5

*******希尔排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:1137

移动次数为:884

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

6

*******堆排序*******

排序结果为:

    1    2    2    3    3    3    3   10   15   18

   20   23   24   24   24   28   31   33   34   36

   40   41   43   43   44   52   55   58   58   60

   61   65   66   70   70   70   73   77   82   84

   86   87   91   92   98  101  101  102  103  106

  109  111  112  113  113  114  114  122  122  123

  123  124  126  126  131  133  138  138  141  142

  142  144  146  146  146  146  147  148  148  150

  154  162  170  171  172  172  174  176  183  186

  186  186  186  189  191  192  192  192  195  198

 

比较次数为:939

移动次数为:1170

选择排序方法:1:   起泡排序

2:   直接插入排序

3:   简单选择排序

4:   快速排序

5:   希尔排序

6:   堆排序

7:   退出......

7

Press any key to continue

五、调试分析

通过不断的加进函数调试

加深并实现算法的思想

从程序的结果可以清晰看出

对于不同的序列

各种算法的比较和移动次数

目录
相关文章
|
C++
C++程序设计实验4
C++程序设计实验4
93 0
|
6月前
|
异构计算
组原实验(一)
组原实验(一)
|
Web App开发 存储 C++
C++程序设计实验5
C++程序设计实验5
63 0
|
机器学习/深度学习 Serverless C++
C++程序设计实验2
C++程序设计实验2
251 0
|
C++
C++程序设计实验8
C++程序设计实验8
88 0
|
C++
C++程序设计实验6
C++程序设计实验6
92 0
|
存储 C++
C++程序设计实验3
C++程序设计实验3
111 0
|
弹性计算 网络协议 Linux
实验1 常用网络命令-1
实验1 常用网络命令-1
229 0
|
Scala
Scala编程实验三
Scala编程实验三
146 0
Scala编程实验三
|
缓存 Linux
我做了个实验!
这次我们就以 malloc 动态内存分配为切入点,我在文中也做了小实验: • malloc 是如何分配内存的? • malloc 分配的是物理内存吗? • malloc(1) 会分配多大的内存? • free 释放内存,会归还给操作系统吗? • free() 函数只传入一个内存地址,为什么能知道要释放多大的内存?
我做了个实验!