拟一份饰品网站建设合同,谷歌是如何运营的,自己做的网站还用维护呢,wordpress 添加音乐排序算法
1、选择排序
2、冒泡排序 1、选择排序
基本思想#xff1a;从头至尾扫描序列#xff0c;每一趟从待排序元素中找出最小(最大)的一个元素值#xff0c;然后与第一个元素交换值#xff0c;接着从剩下的元素中继续这种选择和交换方式#xff0c;最终得到一个有序…排序算法
1、选择排序
2、冒泡排序 1、选择排序
基本思想从头至尾扫描序列每一趟从待排序元素中找出最小(最大)的一个元素值然后与第一个元素交换值接着从剩下的元素中继续这种选择和交换方式最终得到一个有序序列。
原始序列45 32 65 98 5 42 11 61
① 从序列中取出最小的元素5将5同序列第一个元素交换此时产生仅含一个元素的有序序列 原序列减长度减1结果5 [11 32 42 45 65 98]② 从原序列中取出最小的元素11将11同序列第一个元素交换此时产生仅两个元素的有序序列原序列减长度减1结果5 11 [32 42 45 65 98]同理重复同样的步骤结果5 11 32 [42 45 65 98]结果5 11 32 42 [45 65 98]结果5 11 32 42 45 [65 98]结果5 11 32 42 45 65 [98]最后一个元素肯定是最大元素排序直接生产一个有序的序列最终结果5 11 32 42 45 65 98
编程步骤
定义数组并输入值存到数组在原无序序列中找到第一个最小值与该索引然后最小值的索引与原来不一致就交换值重复②③步骤最后输出结果。
//1.选择排序算法
#includeiostream
using namespace std;
int a[1000];
int main(){int n,min,index;cinn;for(int i0;in;i){ //1.输入值到数组 cina[i];}for(int i0;in;i){ min a[i]; // 假设第一个为最小值 index i; // 锁定最小值索引 for(int ji1;jn;j){ //逐个跟后面比对if(mina[j]){ // 大于最小值则更新值 min a[j]; //更新值 index j; //更新索引 }}if(i!index){ // 当索引不一致代表最小值变了 swap(a[i],a[index]); //那就交换第一个值与最小值的位置。 } }for(int i0;in;i){ //输出结果。 couta[i] ;}return 0;
} 稳定性待排序序列中如果存在与原来两端元素相等的元素稳定性就可能被破坏。如[2,4,2,1,3]在排序完后[1,2,2,3,4] 的a[2]与原来的a[2] 不一致稳定性就被破坏了所以选择排序是一种不稳定的排序算法。时间复杂度选择排序的时间复杂度为O()。适用场景待排序序列中元素个数较少时。 2、冒泡排序
基本思想相邻的元素两两比较较大的数下沉(排后面)较小的数冒起来(排前面)这样一趟比较下来最大(小)值就会排列在末端。整个过程如同气泡冒起因此被称作冒泡排序。
原始序列45 32 65 98 5 42 11 61
① 从前往后比根据相邻两个数比较大的在后小的在前第一趟排序32 45 65 5 42 11 61 98可以看到最大的数冒到最后面了。接着排序比较次数可以少一次因为有一个排好了对无序32 45 65 5 42 11 61 进行冒泡排序第二趟排序32 45 5 42 11 61 65 98第三趟排序32 5 42 11 45 61 65 98第四趟排序5 32 11 42 45 61 65 98第五趟排序5 11 32 42 45 61 65 98第六趟排序5 11 32 42 45 61 65 98 发现第六趟排序没有改变就结束循环排序结束
编程步骤
定义数组并输入值存到数组比较相邻两个值如果前比后大就将两个值交换。从第1个依次到最后1个这一趟就排序完成。重复②③步骤直到比较没有再改变数值就循环结束。最后输出结果。
//2.冒泡排序
#includeiostream
using namespace std;
int a[1000];
int main(){int n;cinn;for(int i0;in;i){ //1.输入值到数组 cina[i];}for(int in-1;i0;i--){bool flag true; //假设排好 for(int j0;ji;j){if(a[j]a[j1]){ //比较相邻的值 swap(a[j],a[j1]); //交换 flag false; }}if(flagtrue) break; //某一轮排好,没有交换,提前终止。 }for(int i0;in;i){ //输出结果 couta[i] ;}return 0;
} 稳定性在冒泡排序中遇到相等的值是不进行交换的只有遇到不相等的值才进行交换所以是稳定的排序方式。时间复杂度选择排序的时间复杂度为O()。适用场景冒泡排序适用于数据量很小的排序场景因为冒泡的实现方式较为简单。