码迷,mamicode.com
首页 > 其他好文 > 详细

第三次作业

时间:2017-12-02 14:12:53      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:字符   进度   方法   带来   二分   不同   images   部分   style   

1.学号和GIT地址

 本次作业两名同学的学号:1501020532王力销 1501020534乔鑫森

 本次作业GIT的提交地址 https://gitee.com/darkknightwlx/32WangLiXiao34-QiaoXinSen-KaoHeSan.git

2.学习进度条

技术分享图片

3. 本次作业的解题思路

快速排序概述

快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(nlogn)次比较。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,并且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。

快速排序,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。

步骤

选择一个基准元素,通常选择第一个元素或者最后一个元素
通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的元素值均比基准值大
此时基准元素在其排好序后的正确位置
然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。

 1 public class a {            
 2     
 3         public static void sort(int a[], int x, int y) {        //定义一个有两个字符串缓冲区的整形字符串a,低位缓冲区是x,高位缓冲区是y
 4             int i, j, z;  
 5             if (x > y) {  
 6                 return;
 7             }
 8             i = x;
 9             j = y;
10             z = a[i];              // 用子表的第一个记录做基准
11             while (i < j) {        //从表的两端交替向中间扫描
12                 while (i < j && a[j] >= z)
13                     j--;
14                 if (i < j)
15                     a[i++] = a[j]; //用比基准小的记录替换低位记录
16                 while (i < j && a[i] < z)              
17                     i++;
18                 if (i < j)
19                     a[j--] = a[i];  // 用比基准大的记录替换高位记录
20             }
21             a[i] = z;               // 将基准数值替换回 a[i]
22             sort(a, x, i - 1);      // 对高位缓冲区排序
23             sort(a, i + 1, y);      // 对低位缓冲区排序
24 
25         }
26 
27         public static void quicksort(int a[]) {    //定义一个方法用来给出字符串a           
28        sort(a, 0, a.length - 1);
29         }
30 
31         public static void main(String[] args) {   
32 
33             int a[] = { 15,1,2,5,32,15,1,2,5,34 };
34             quicksort(a);
35             for(int c=0;c<a.length; c++)    //遍历然后按要求输出
36             {
37                 System.out.print(a[c] + " ");
38           }
39         }
40 }

4. 截图

技术分享图片

5. 感受

这次考核考察的快速排序,和二分法,二选一。这两种方法都不太知道怎么应用,这就体现了团队合作的优点,1+1>2。两个人不同的解题思路与思维方式,优势互补,集思广益,对解决问题有很大帮助。

6. 评价伙伴

我的合作伙伴是王力销。我的动手能力比较弱,代码等等都是他打的,做事细心,注重细节。谨慎,又乐观。这次考核我没起什么作用,全抱大腿了。期待与他的下一次合作。

 

第三次作业

标签:字符   进度   方法   带来   二分   不同   images   部分   style   

原文地址:http://www.cnblogs.com/qxs123/p/7953870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!