近期关于冒泡排序算法思想是什么?的讨论热度持续攀升 ,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸 。
一 、冒泡排序,代码和运行结果如图所示。
重复地走访过要排序的元素列 ,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。
二、选择排序 ,代码和运行结果如图所示 。
思想:选择排序,让数组中的每一个数,依次与后面的数进行比较 ,如果前面的数大于后面的数,就进行位置的交换。换个说法,选择排序:第一个数依次与后面的数比较 ,第一次比较完之后最小的数在最前面 。
扩展资料:
冒泡排序算法的原理如下:
1、比较相邻的元素 。如果第一个比第二个大,就交换他们两个。
2 、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点 ,最后的元素应该会是最大的数 。
3、针对所有的元素重复以上的步骤,除了最后一个。
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
参考资料:
如何用c语言编写冒泡排序的程序?
冒泡排序每一趟排序把最大的放在最右边 。
比如:
87 12 56 45 78
87和12交换:12 87 56 45 78
87和56交换: ? 56 87 45 78
87和45交换: ?45 87 78
87和78交换: 78 87
到此第一趟排序结束,接下来的每一趟排序都是这样。
#include<stdio.h>void?Print(int?*num,?int?n)
{
int?i;
for(i?=?0;?i?<?n;?i++)
printf("%d?",?num[i]);
puts("\n");
return;
}
void?Bubble_Sort(int?*num,?int?n)
{
int?i,?j;
for(i?=?0;?i?<?n;?i++)
{
for(j?=?0;?i?+?j?<?n?-?1;?j++)
{
if(num[j]?>?num[j?+?1])
{
int?temp?=?num[j];
num[j]?=?num[j?+?1];
num[j?+?1]?=?temp;
}
Print(num,?n);
}
}
return;
}
int?main()
{
int?num[8]?=?{87,?12,?56,?45,?78};
Bubble_Sort(num,?5);
return?0;
}
冒泡排序原理
对拥有 n 个元素的数组 R[n] 进行 n-1 轮比较。
第一轮 ,逐个比较 (R[1], R[2]),? (R[2], R[3]),? (R[3], R[4]),? …….? (R[N-1], R[N]),最大的元素被移动到 R[n] 上 。
第二轮,逐个比较 (R[1], R[2]),? (R[2], R[3]),? (R[3], R[4]),? …….? (R[N-2], R[N-1]) ,次大的元素被移动到 R[n-1] 上。
。。 。。。 。
以此类推,直到整个数组从小到大排序。
具体的代码实现如下所示:
#include <stdio.h>
int main(){
int nums[10] = {4, 5, 2, 10, 7, 1, 8, 3, 6, 9};
int i, j, temp;
//冒泡排序算法:进行 n-1 轮比较
for(i=0; i<10-1; i++){
//每一轮比较前 n-1-i 个,也就是说 ,已经排序好的最后 i 个不用比较
for(j=0; j<10-1-i; j++){
if(nums[j] > nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
//输出排序后的数组
for(i=0; i<10; i++)
{
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个 。这个数就会从序列的最右边冒出来。
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较 ,交换也发生在这两个元素之间 。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻 ,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换。
冒泡排序
选择排序算法的基本思路是为每一个位置选择当前最小的元素。选择排序的基本思想是,基于直接选择排序和堆排序这两种基本的简单排序方法 。首先从第1个位置开始对全部元素进行选择,选出全部元素中最小的给该位置 ,再对第2个位置进行选择,在剩余元素中选择最小的给该位置即可。
快速排序的基本思想是:通过一趟排序算法把所需要排序的序列的元素分割成两大块,其中 ,一部分的元素都要小于或等于另外一部分的序列元素,然后仍根据该种方法对划分后的这两块序列的元素分别再次实行快速排序算法,排序实现的整个过程可以是递归的来进行调用。
关于冒泡排序算法思想是什么?的相关内容介绍到此告一段落 ,若这些信息对您有所启发,欢迎持续关注本站获取更多优质内容。
本文来自作者[黎鋒洪皺]投稿,不代表旋风格立场,如若转载,请注明出处:https://xfg666.cn/wenzhang/407.html
评论列表(3条)
我是旋风格的签约作者“黎鋒洪皺”
本文概览:近期关于冒泡排序算法思想是什么?的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。一、冒泡排序,代...
文章不错《冒泡排序算法思想是什么-》内容很有帮助