-
2022-03-13 21:43:45
#include<stdio.h> int main() { //冒泡排序 int a[5]; int i,j; printf("请输入5个数:"); for (i = 0; i < 5; i++) { scanf_s("%d",&a[i]); } for (i = 0; i < 4; i++) //遍历数组 { for (j = 0; j < 4 - i; j++) //比较数组 { int temp; if(a[j]>a[j+1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } printf("\n排序后为:"); for(i=0;i<5;i++) printf("%3d", a[i]); //遍历数组 return 0; }
这个没有什么好说的,挺好理解,第一个for输出5次,第二个for循环4次,不是5次是因为要除掉一个本身,第三个for是还为循环的数,然后进行比较交换,第四个for是打印排序之后的数
更多相关内容 -
c语言合并两个已排序数组的示例(c语言数组排序)
2021-01-20 05:30:20问题:将两个已排序数组合并成一个排序数组 这里先不考虑大数据量的情况(在数据量很大时不知大家有什么好的思路或方法?),只做简单数组的处理。 简单代码如下: 说明:之所以把merge函数定义成返回数组长度,是因为... -
C语言数组排序
2019-09-27 11:33:00有些时候要用char型的数组来储存学号、证件号,这时候的排序就不能简单的用比较大小的方式来完成了。 可以使用C语言头文件#include<string.h>的库函数: strcmp(str_1,str_2)来完成 在结构体里重载了运算符>...有些时候要用char型的数组来储存学号、证件号,这时候的排序就不能简单的用比较大小的方式来完成了。
可以使用C语言头文件#include<string.h>的库函数: strcmp(str_1,str_2)来完成
在结构体里重载了运算符>
下面是strcmp的简单使用及冒泡排序typedef struct Student { char id_number[11] = { '\0' }; char name[7] = { '\0' }; char m_grade[4] = { '\0' }; char e_grade[4] = { '\0' }; int operator>(Student& other) { char* id_1, *id_2; id_1 = id_number; id_2 = other.id_number; if (strcmp(id_1,id_2)>0) { return 1; } else { return 0; } } }Stu; void swap(Stu& other, Stu& another) { Stu temp; temp = other; other = another; another = temp; } void bubble_sort(Stu *students,int &length) { int i, j; if (length > 1) { for (i = 0; i < length; i++) { for (j = i + 1; j < length; j++) { if ((students[i] > students[j]) == 1) { swap(students[i], students[j]); } } } } }
-
C语言 数组排序 – 快速法排序 - C语言零基础入门教程
2021-08-18 10:01:38目录 一.简介 二....三....四....零基础 C/C++ 学习路线推荐 :&...在 C 语言中常见的数组排序一共有四种: 1.冒泡法排序 2.选择法排序 3.插入法排序 4.快速法排序 二.数组快速法排序原理 快速排序法号称是目前最优秀的算法目录
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
一.简介
经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序,例如:学习成绩排序,身高排序,年龄排序等等;在
C
语言中常见的数组排序一共有四种:二.数组快速法排序原理
快速排序法号称是目前最优秀的算法之一,实现思路是,将一个数组的排序问题看成是两个小数组的排序问题,而每个小的数组又可以继续看成更小的两个数组,一直递归下去,直到数组长度大小最大为 2。
三.数组快速法排序实战
/******************************************************************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:C语言教程 - C语言 数组排序 – 快速法排序 //@Time:2021/06/08 08:00 //@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! /******************************************************************************************/ #include<stdlib.h> #include<stdio.h> //快速排序 void quickSort(int *arr, int l, int r) { //此处编写代码实现快速排序 int i, j, x, temp; if (l < r) { i = l; j = r; x = arr[(l + r) / 2]; //以中间元素为轴 while (1) { while (i <= r && arr[i] < x) i++; while (j >= 0 && arr[j] > x) j--; if (i >= j) //相遇则跳出 break; else { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; //交换 } } quickSort(arr, l, i - 1); //对左半部分进行快排 quickSort(arr, j + 1, r); //对右半部分进行快排 } } void main() { int a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 10 }; int len = sizeof(a) / sizeof(int); for (int i = 0; i < len; i++) { printf("排序之前:index:%d value:%d\n", i, a[i]); } //快速法排序 quickSort(a, 0, 9); printf("-----------------------------------\n"); for (int i = 0;i<len;i++) { printf("排序之后:index:%d value:%d\n", i, a[i]); } system("pause"); } /* 输出: 排序之前:index:0 value:9 排序之前:index:1 value:8 排序之前:index:2 value:7 排序之前:index:3 value:6 排序之前:index:4 value:5 排序之前:index:5 value:4 排序之前:index:6 value:3 排序之前:index:7 value:2 排序之前:index:8 value:1 排序之前:index:9 value:10 ----------------------------------- 排序之后:index:0 value:1 排序之后:index:1 value:2 排序之后:index:2 value:3 排序之后:index:3 value:4 排序之后:index:4 value:5 排序之后:index:5 value:6 排序之后:index:6 value:7 排序之后:index:7 value:8 排序之后:index:8 value:9 排序之后:index:9 value:10 请按任意键继续. . . */
四.猜你喜欢
- 安装 Visual Studio
- 安装 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸载
- Visual Studio 2003/2015 卸载
- C 语言格式控制符/占位符
- C 语言逻辑运算符
- C 语言三目运算符
- C 语言逗号表达式
- C 语言 for 循环
- C 语言 while 循环
- C 语言 do while 和 while 循环
- C 语言 switch 语句
- C 语言 goto 语句
- C 语言 char 字符串
- C 语言 sizeof 和 strlen 函数区别
- C 语言 strcpy 和 strcpy_s 函数区别
- C 语言 memcpy 和 memcpy_s 区别
- C 语言 数组定义和使用
- C 语言 数组遍历
- C 语言 数组排序 – 冒泡法排序
- C 语言 数组排序 – 选择法排序
- C 语言 数组排序 – 插入法排序
- C 语言 数组排序 – 快速法排序
未经允许不得转载:猿说编程 » C 语言 数组排序 – 快速法排序
-
C语言 数组排序 – 选择法排序 - C语言零基础入门教程
2021-08-17 10:15:20目录 ...在 C 语言中常见的数组排序一共有四种: 1.冒泡法排序 2.选择法排序 3.插入法排序 4.快速法排序 二.数组选择法排序原理 将要排序的数组分成两部分,一部分是从大到小已经排好序的,一部分目录
零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
一.简介
经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组进行排序,例如:学习成绩排序,身高排序,年龄排序等等;在
C
语言中常见的数组排序一共有四种:二.数组选择法排序原理
将要排序的数组分成两部分,一部分是从大到小已经排好序的,一部分是无序的,从无序的部分取出最小的放到已经排序的最后面。
三.数组选择法排序实战
/******************************************************************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:C语言教程 - C语言 数组排序 – 选择法排序 //@Time:2021/06/08 08:00 //@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! /******************************************************************************************/ #include<stdlib.h> #include<stdio.h> void main() { int a[5] = { 12, 19, 2 , 993, -34 }; int len = sizeof(a) / sizeof(int); for (int i = 0; i < len; i++) { printf("排序之前:index:%d value:%d\n", i, a[i]); } //数组选择法排序 for (int i = 0; i < len; i++) { int m = i; for (int j = i + 1; j < len; j++) { //如果第j个元素比第m个元素小,将j赋值给m if (a[j] < a[m]) { m = j; } } //交换m和i两个元素的位置 if (i != m) { int t = a[i]; a[i] = a[m]; a[m] = t; } } printf("-----------------------------------\n"); for (int i = 0;i<len;i++) { printf("排序之后:index:%d value:%d\n", i, a[i]); } system("pause"); } /* 输出: 排序之前:index:0 value:12 排序之前:index:1 value:19 排序之前:index:2 value:2 排序之前:index:3 value:993 排序之前:index:4 value:-34 ----------------------------------- 排序之后:index:0 value:-34 排序之后:index:1 value:2 排序之后:index:2 value:12 排序之后:index:3 value:19 排序之后:index:4 value:993 请按任意键继续. . . */
四.猜你喜欢
- 安装 Visual Studio
- 安装 Visual Studio 插件 Visual Assist
- Visual Studio 2008 卸载
- Visual Studio 2003/2015 卸载
- C 语言格式控制符/占位符
- C 语言逻辑运算符
- C 语言三目运算符
- C 语言逗号表达式
- C 语言 for 循环
- C 语言 while 循环
- C 语言 do while 和 while 循环
- C 语言 switch 语句
- C 语言 goto 语句
- C 语言 char 字符串
- C 语言 sizeof 和 strlen 函数区别
- C 语言 strcpy 和 strcpy_s 函数区别
- C 语言 memcpy 和 memcpy_s 区别
- C 语言 数组定义和使用
- C 语言 数组遍历
- C 语言 数组排序 – 冒泡法排序
- C 语言 数组排序 – 选择法排序
未经允许不得转载:猿说编程 » C 语言 数组排序 – 选择法排序
-
C语言数组排序——选择排序
2022-05-20 13:04:10十个数值组成的数组的排序算法 -
c语言数组实现冒泡排序
2021-11-08 17:57:48数组实现冒泡排序什么是冒泡拍排序用数组实现总结 什么是冒泡拍排序 首先,需要了解一下什么是冒泡排序,定义:冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素... -
C语言 数组中重复的数字分析及方法
2020-12-25 19:32:38C语言 数组中重复的数字解决方法: 题目:在一个长度为n的数组里的所有数字都在0-n-1的 范围内。数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字... -
C语言 数组的排序,和与平均值。
2021-12-20 09:48:27#include <stdio.h> #define MAX 100000 void Asc_order(int a[], int n);//升序 void Des_order(int a[], int n);//降序 int main() { int n,i,j,tmp;//输入的个数,tmp交换时的临时变量 ... n... -
C语言数组之排序
2019-03-25 19:56:34输入某门课的成绩,按编程将分数从高到低顺序进行排序输出 第一种:采用交换法排序,也称作冒泡排序。 基本过程是先将第一个数分别于后面的数一个一个进行比较,若后面的数小,则交换后面这个数和第一个数的位置,... -
C语言:数组排序(选择法排序)
2021-11-08 08:21:28选择法排序指每次选择所要排序的数组中的最小(最大)的数组元素,将这个数组元素的值与后面没有进行排序的数组元素的值互换。 下面以9、6、15、4、2为例,进行选择排序 元素[0] 元素[1] 元素[2] 元素... -
C语言实现数组排序
2022-01-14 23:08:19//定义一个长度为3的数组 for (int i = 0;i < 3;i++) { scanf_s("%d", &a[i]); }//输入数组 for (int j = 1;j <3;j++) { if (a[j]> a[j-1]) { int z = a[j]; a[j] = a[j-1]; ... -
C语言:数组排序(插入法排序)
2021-11-11 12:42:13插入法相对较复杂,基本原理是抽出一个数据,在前面数据中寻找相应的位置插入,然后继续下一个数据,直到排序完成 以9、6、15、4、2为例来进行插入法排序 元素[0] 元素[1] 元素[2] 元素[3] 元素[4... -
C语言 数组排序 – 插入法排序 - C语言零基础入门教程
2021-08-18 09:42:37目录 ...在 C 语言中常见的数组排序一共有四种: 1.冒泡法排序 2.选择法排序 3.插入法排序 4.快速法排序 二.数组插入法排序原理 将要排序的数组分成两部分,每次从后面的部分取出索引最小的元素插 -
C语言 数组 冒泡排序法
2021-07-15 13:01:54C语言 数组 冒泡排序法 以从小到大排序为例,冒泡排序的整体思想是这样的: 从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。经过第一轮的比较,就... -
C语言数组排序及其他算法思想
2017-11-28 23:22:01以数组形式,不能运用除了main之外的函数的冒泡法,选择排序法,二分法,插入法,删除法,最好来段代码 -
C语言 数组插入 – 插入排序
2022-04-09 21:30:46十大排序经典排序算法 //插入排序 #include int main() { int x[5] = {26,1,8,45,22}; int i, j; int temp;//临时变量,做记录 for (i = 1; i ; i++) { temp = x[i]; for (j = i; j > 0 && x[j - 1] > temp; j--) x[j... -
【蓝桥杯】~C语言数组排序
2021-12-07 14:17:17数组排序 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 #include<stdio.h> #define N 201 int main() { int n, i, j, temp; scanf("%d", &n); int a[N]; for (i = 0... -
C语言 数组的查找和排序方法 1.顺序查找 2.二分查找; 1.(简单)选择排序法 2.冒泡排序法 3.(直接)插入...
2021-12-14 21:41:40C语言 数组部分知识、实现数组查找和排序 -
【C语言】数组排序方法总结
2021-01-25 17:15:32相邻元素两两比较,按照要求交换位置,n个元素一共要比较n-1趟,每趟要两两比较未排序元素个数-1次。 #include<stdio.h> void bubble_sort(int* p, int len)//函数实现 { int i = 0; int j = 0; for (i = ... -
C语言数组排序小结
2012-07-17 08:31:31C语言数组排序小结 -
C语言数组的五种排序
2019-04-14 17:34:45目录 冒泡排序 快速排序 选择排序 插入排序 归并排序 ...冒泡排序 ...冒泡排序的基本思想:不断比较相邻的两个数,让较大的元素不断地往后移。...* @param int a[] 要排序的数组 * @param int n 数组元素的个数 ... -
C语言数组的几种排序方法
2019-08-23 15:46:38#include <stdio.h> #include <time.h>.../*快速排序法*/ void quickSort(int *p,int low,int high) { if(low < high) { int temp = p[low]; int l = low; int h = high; ... -
C语言数组+冒泡排序
2019-02-03 17:17:58C语言数组 -
C语言数组排序法
2011-07-13 20:27:16很多朋友是以谭浩强老师编的《c语言教程》作为学习...为了扩大视野,增加学习编程的兴趣,我参阅了有关书籍,整理了几种排序法,写出来同大家共勉让我们先定义一个整型数组a[n],下面用五种方法对其从小到大排序。 (1) -
C语言 数组插入 – 插入法排序(顺序版)
2022-03-13 16:09:27数组的插入排序,带有原理图,一看就懂 -
C语言:数组排序(冒泡法排序)
2021-11-08 19:51:45冒泡法排序指的是在排序时,每次比较数组中相邻的两个数组元素的值,将较大的数(从小到大排列)排在较小的数后面。 以数字9、6、15、4、2为例 元素[0] 元素[1] 元素[2] 元素[3] 元素[4] 起始值 ... -
【C语言】数组排序,并返回排序后的数组对应原数组的下标
2020-07-24 19:52:03#include<stdio.h> #include<stdlib.h> void sort(int* a, int length, int* b) { int i,j, t1, t; for(j=0; j<length; j++) for(i=0; i<length-1-j; i++) if(a[i]<a[i+1]) ......