排序算法2——冒泡排序,快速排序

本文介绍了两种经典的排序算法——冒泡排序和快速排序,并通过C++代码详细展示了这两种算法的具体实现过程。冒泡排序通过不断比较相邻元素并交换位置来达到排序目的;而快速排序则采用分治策略,选择基准元素进行分区操作,递归地对子数组进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

冒泡排序:
#include <iostream> using namespace std; void bubblesort(int *arry, int size) { for (int i = 0; i < size; i++) for (int j = i ; j < size;j++) if (arry[i]>arry[j ]) { int temp = arry[i]; arry[i] = arry[j]; arry[j] = temp; } } void print(int *arry, int size) { for (int i = 0; i < size; i++) cout << arry[i]; cout << endl; } void main() { int arry[5] = { 2, 3, 1, 4, 5 }; print(arry, 5); bubblesort(arry, 5); print(arry, 5); system("pause"); }

递增:

第一排序,放到数组第一位的一定是最小的,以此类推

理由:每一次交换都是把较小的那个放到了第一位,全部比较后,第一位就是最小的

 

快速排序:
#include <iostream> using namespace std; void quicksort(int *arry, int left, int right) { if (left < right) { int i = left; int j = right + 1; int temp; int flag = arry[left]; do{ do i++; while (arry[i] <= flag); do j--; while (arry[j] >= flag); if (i < j) { temp = arry[i]; arry[i] = arry[j]; arry[j] = temp; } } while (i < j); temp = arry[left]; arry[left] = arry[j]; arry[j] = temp; quicksort(arry, left, j - 1); quicksort(arry, j+1 , right); } } void print(int *arry, int size) { for (int i = 0; i < size; i++) cout << arry[i]; cout << endl; } void main() { int arry[5] = { 2, 1, 4, 3, 5 }; print(arry, 5); quicksort(arry, 0, 4); print(arry, 5); system("pause"); }

 

转载于:https://www.cnblogs.com/HackHer/p/5515595.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值