-
2019-01-16 14:06:50
1.选择法排序
-
思想:从当前数组元素开始往后边找,找到大于(或者小于,分从大到小排序还是从小到大排序两种情况)当前数组元素的数组中最大值(最小值)就交换。
-
例如:
-
【2】 8 1 -5 0 ==》 【8】2 1 -5 0 ==》【8】2 1 -5 0 ==》【8】2 1 -5 0
(8>2,交换) -
8【2】 1 -5 0 ==》8【2】 1 -5 0 ==》8【2】 1 -5 0 ==》8【2】 1 -5 0
-
8 2 【1】 -5 0 ······
-
8 2 1 【-5】 0 ·······
-
8 2 1 -5 【0】 ·······
-
总之,选择法排序就是先比较,在交换
-
上代码
for (int i = 0; i < N;i++) { for (int j = i + 1; j < N;j++) { if (nums[j]>nums[i]) { int temp = nums[j]; nums[j] = nums[i]; nums[i] = temp; } } }
我哪里表述不明白的请在下面评论。
更多相关内容 -
-
C语言选择法排序
2022-04-12 08:22:16什么是选择法排序 选择法排序,是从n个数中先找出最大或者最小的数放到数组的最前面或最后面,再在剩余的n-1个数中找出最大或者最小的数放到数组的次前面或倒数第2单元,以此类推,直至排序完毕。通俗的理解,遍历...什么是选择法排序
选择法排序,是从n个数中先找出最大或者最小的数放到数组的最前面或最后面,再在剩余的n-1个数中找出最大或者最小的数放到数组的次前面或倒数第2单元,以此类推,直至排序完毕。通俗的理解,遍历数组就是:把数组中的元素都看一遍。
具体代码如下:#include<stdio.h> /*****请在下面补充函数 inArray、selectSort 和 outArray 的定义 *****/ void inArray(int arr[],int n) //输入数据 { int i; for(i=0;i<n;i++) scanf("%d",&arr[i]); } void selectSort(int arr[],int n) //定义选择法排序 { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(arr[j]<arr[k]) //比较两个数的大小 k=j; //把最小元素的序号保存在K中 if(k!=i) //如果K值有改变 { t=arr[k]; arr[k]=arr[i]; arr[i]=t; } //交换两个数 } } void outArray(int arr[],int n) //输出结果 { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } }
选择排序法的稳定性
在选择排序法中,每趟都会选出最大的元素和最小的元素,然后实现两个元素的互换,但是如果在待排序的序列两端出现相等的元素稳定性就很有可能被破环。
适用场景
待排序的序列中,元素的个数较少时。
时间复杂度
由于存在两层循环,所以选择法排序的时间复杂度为O(n^2)。 -
c语言 选择法排序
2020-03-25 21:56:55本题要求将给定的n个整数从大到小排序后输出。 输入格式: 输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。 输出格式: 在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末...本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。#include <stdio.h> int main() { int n; int a[10]; int max; int i, j, temp; scanf("%d", &n); for (i = 0; i < n; i++)//将数字填入字符串 { scanf("%d", &a[i]); } for (i = 0; i < n; i++) //假设开头项为最大,用循环从i+1开始比较 { max = i; for (j = i + 1; j < n; j++) { if (a[max] < a[j]) //找出大于i的最大值 { max = j; } } temp = a[i];//i的值与最大值交换 a[i] = a[max]; a[max] = temp; } for (i = 0; i < n; i++) { printf("%d", a[i]); if (i < n - 1) { printf(" "); } } return 0; }
-
C语言选择法排序编程.cpp
2019-08-21 11:02:42文件为C语言选择法排序编程的代码,为方便理解,在该实例中,是对4个整型数进行排序。 -
c语言选择法排序
2016-07-18 23:01:31include “stdio.h”int main(void) { int a[6]={10,50,2,35,67,58},i,j,min,mini; for(i=0;i<5;i++) { min=a[i]; mini=i; for(j=i;j<6;j++) { if -
C语言排序之选择法排序
2022-01-15 10:54:08C语言排序算法之选择法排序 -
C语言 选择排序法
2020-12-21 22:16:09从键盘上输入10个数,用选择排序法按照从小到大的顺序输出 首先,分析一下什么叫做选择排序法。假设有十个元素a[0]~a[10],第一次将a[0]和a[1]—a[9]比较,如果其中有比a[0]小的数那么就互换值,此时a[0]一定是最小... -
C语言丨选择法排序
2021-11-24 19:15:51程序员在程序设计时常常需要对存储在数组中的大量数据进行处理,如排序、查找等。排序是把一系列无序的数据按照特定的顺序...上次我们已经介绍过了交换法排序,这次我们来介绍一种经过交换法改进的排序法:选择法排序。 -
c语言之选择排序法
2020-11-28 20:22:23问题 : 选择法排序 题目描述 输入一个正整数n,再输入n个整数,将他们从大到小排序后输出。 样例输入 5 2 5 1 3 4 样例输出 5 4 3 2 1 //精髓就是要交换数值大小 ; #include<stdio.h> int main() { int n; ... -
C语言选择排序
2022-04-30 22:38:30一、选择排序 1.演示程序 ①、i<9 ②、 j=i+1(起始) ③、 j<10(终止) 二、选择排序写在函数中 1.演示程序 ①、注意事项 一、选择排序 1.演示程序 此处我么们仍以程序实例来进行解释(选择排序... -
选择排序 蛮力法-C语言
2020-08-07 12:24:26C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码 -
C语言冒泡排序和选择排序
2022-01-05 10:14:49一、冒泡排序法 假设从小到大排序,例一数组:int arr[] = {2,1,34,5}。 arr[0]元素先跟相邻的arr[1]元素相比,如果比它大则交换两个元素,大的数值放在后面。然后比较arr[1]和arr[2]的大小,以此类推,直至第n-2... -
C语言中的选择排序
2021-10-29 09:01:03在C语言中 用来解决排序问题的常见方法有选择排序和冒泡排序两种 一、选择排序 先上代码: 1.计算素组元素个数 通过 sizeof()计算数组全体元素占空间的大小 再去除以 一个元素占空间的大小 即可得到 元素个数 。 2.... -
C语言实现选择排序、冒泡排序和快速排序的代码示例
2020-09-02 12:57:14主要介绍了C++中实现选择排序、冒泡排序和快速排序的代码示例,例子带有执行时间统计还可以简单看一下效率对比,需要的朋友可以参考下 -
程序设计之C语言选择法排序第K趟
2021-04-09 08:37:487-1 选择法排序之第k趟 (10 分) 本题要求使用选择法排序,将给定的n个整数从小到大进行排序,输出第k趟(k从0开始)排序后的结果。 选择排序的算法步骤如下: 第0步:在未排序的n个数(a[0]〜 a[n−1])中找到最小数... -
C语言经典100题——用选择法排序
2022-03-03 16:22:16选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾... -
总结c语言基础算法——冒泡排序法和选择排序法
2022-03-16 12:51:04而在C语言中可以有很多排序的方法,这里着重介绍的是常用的较为基础和重要的算法——冒泡排序法和选择排序法。 下面将举一个例子进行讲解: 要求:从键盘输出10个整数,要求对它们按照从小到大的顺序排列。 ... -
选择法排序(c语言)
2021-01-11 11:09:25选择法排序:是指先将a[0]~a[n]中的最小元素与a[0]交换;再将a[1]~a[n]中的最小元素与a[1]交换……,每进行一轮比较,找出当前未排序数中的最小元素。比较n-1轮后,排序结束。 -
C语言/选择排序法(从大到小)
2021-11-28 21:28:43C语言/选择排序法(从大到小) #include <stdio.h> #define nmax 10 int main(void) { int i,j,n; int a[nmax]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n... -
C语言用选择法降序排序
2020-12-26 21:19:28用选择法对数组中10个整数,按由大到小排序。 要求:(1)定义排序函数sort来实现。 函数的原型为:void sort(int b[10],int n ) (2)数组中的10个整数,由键盘输入。 (3)在源程序中书写必要的注释。 -
C语言:数组排序(选择法排序)
2021-11-08 08:21:28选择法排序指每次选择所要排序的数组中的最小(最大)的数组元素,将这个数组元素的值与后面没有进行排序的数组元素的值互换。 下面以9、6、15、4、2为例,进行选择排序 元素[0] 元素[1] 元素[2] 元素... -
C语言选择排序算法及实例代码
2020-09-02 00:17:10本篇文章主要介绍了 C语言选择排序算法,这里提供代码实例以便大家理解,通过本文,更好的理解排序算法 -
C语言实现选择法排序
2018-12-23 02:02:04选择法排序: 依次使用当前取得的元素和其后面的元素进行比较。 在第一个元素和其后面的元素顺次比较时,可借助中间变量 对两个数进行交换。 void fun(int a[], int n) { int p, temp; for (int i = 0; i < ... -
(c语言)选择排序法和冒泡排序法
2015-04-20 19:11:48给定一个数组(或者输入一个数组),分别运用选择排序法和冒泡排序法将所要的结果输出。 程序分析: 选择排序 1>.对于选择排序,首先理解排序的思想。给定一个数组,这种思想首先假定数组的首元素为最大(最小)的...
收藏数
48,875
精华内容
19,550