首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c+编程实现多种排序方法

排序问题属于群体数据组织问题,小编今天跟大家讲讲几个对数组元素排序的方法。(默认都是按升序)

插入排序

插入排序的基本思想是:每一步将一个待排元素按其关键字值的大小插入到已排序序列中,直到待排元素插入完为止。如果要对具有n个元素的数组a进行排序,初始状态可以认为a[0]为已排序列,排序过程如图所示:

代码实现

选择排序

选择排序的基本思想:每次从待排序序列中选择一个关键字最小的元素(升序),顺序排在已排序序列的最后,直至全部排完。在选择排序法中,根据从待排序序列中选择元素的方法不同,又分为不同的选择排序法。其中最简单的是通过顺序比较找出待排序序列中的最小元素,也就说直接排序法。

初始状态: [5 4 10 20 12 3]

(1)选出最小元素3: [5 4 10 20 12 3]

(2)选出最小元素4: 3 [4 10 20 12 5]

(3)选出最小元素5: 3 4 [10 20 12 5]

(4)选出最小元素10: 3 4 5 [20 12 10]

(5)选出最小元素12: 3 4 5 10 [12 20]

排序后的状态: 3 4 5 10 12 [20]

代码实现

交换排序

交换排序的基本思想是:两两比较待排序序列中的元素,比交换不满足顺序要求的各对元素,直到全部满足顺序要求为止。最简单的交换排序方法是冒泡排序:

(1)首先将第一个元素与第二个元素进行比较,若为逆序则互换。然后比较第二第三个元素,以此类推,知道第n-1个和第n个元素进行了比较和互换。第一趟起泡完成,最大的元素被交换到第n个位置。

(2)对前n-1个元素进行第二趟冒泡排序,将其中最大元素交换到n-1个位置。

(3)以此类推,直到某一趟排序为发生任何交换,对n个元素最多需要冒泡n-1次。

代码实现

以上就是我的回答,喜欢请关注,我们一起学编程。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180719A1R4V300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券