排序算法
灰太狼!!!
少儿编程老师
展开
-
【信奥赛一本通】1181:整数奇偶排序(详细代码)
【信奥赛一本通】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。1.【题目描述】2.【代码】1.【题目描述】【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空原创 2021-08-24 10:28:17 · 1736 阅读 · 0 评论 -
【排序算法】选择排序(详细代码)
【排序算法】选择排序1.【基本思路】2.【代码】1.【基本思路】选择排序:(1)读入数据存放在a数组中(2)在a[0]~a[n]中选择值最小的元素,与第一位元素交换,则把最小的元素放入a[0]中。(3)在a[1]~a[n]中选择值最小的元素,与第二位元素交换,则把最小的元素放入a[1]中。(4)…(5)直到第n-1元素与第n个元素比较排序为止。2.【代码】#include <bits/stdc++.h>using namespace std;int main(){ in原创 2021-08-21 11:22:10 · 5284 阅读 · 0 评论 -
【排序算法】插入排序(详细代码)
【排序算法】插入排序1.【基本思路】2.【代码】1.【基本思路】(1)读人数据存放在a数组中。(2)从第2个数开始,取出当前数作为待排序数,逐个与前面的数比较,若小于前面数,则前面数后移,当大等于前面数时,插人当前空出的位置。(3)直到第n个数插入正确位置为止。2.【代码】#include <bits/stdc++.h>using namespace std;int main(){ int a[100],n; cin>>n; for(int i=0;i<原创 2021-08-19 23:05:23 · 3808 阅读 · 0 评论 -
【c++分治算法解决归并排序】归并排序(图解+代码)
【c++ 分治算法】归并排序1.【概念】2.【思路】3.【代码】1.【概念】归并排序 :(Merge Sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并,使用中牺牲空间换取时间的算法2.【思路】1.解决归并排序需要使用分治思想,先分后治,先使用二分法对数组进行分,在进行治的时候还需要使用原创 2021-08-09 20:25:13 · 1935 阅读 · 0 评论 -
【排序算法】快速排序(详细代码)
【排序算法】选择排序1.【基本思路】2.【代码】1.【基本思路】选择排序,都会在一个序列当中选择一个基数,我这里选择最后一个数为基数,小于基数的放在左边,大于基数的放在右边。这里要采用分治算法:这里有一个序列i=0;//i的位置一直会是比基数大的前面一个元素的位置j=1;//j用来寻找比基数小的数temp=data[right]//基数选择最左边一个如果data[j]<=temp当小于我们的基数的时候,就应该放在基数的左边这个时候i++,swap(a[j],a[i])的位置。原创 2021-08-19 22:40:29 · 1260 阅读 · 0 评论