数组排序的四种常见方法

数组排序的四种常见方法这里我将介绍四种方法 选择法 冒泡法 交换法和插入法

大家好,欢迎来到IT知识分享网。

这里我将介绍四种方法:选择法,冒泡法,交换法和插入法。

一.选择法

选择法排序简单,比较容易理解实现,它适用于数量较小的排序。

该方法是每次循环选出最大值或者最小值,并交换位置。

直接上代码。

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void select_sort(int arr[]) { for (int i = 0; i < 10; i++) { int tmp = arr[i]; int t = i; for (int j = i + 1; j < 10; j++) { if (arr[j] < tmp) { tmp = arr[j]; t = j; } } arr[t] = arr[i]; arr[i] = tmp; } } int main() { int arr[10]; for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } select_sort(arr); for (int i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; }

二.冒泡法排序

这个方法,我在单独一个博客里面详解了的,请移步 详解冒泡排序以及多种方法​​​​​​

 三.交换法

是指每一位数字都与后面的所有数一一比较,若发现符合条件的就交换数据。

上代码:

void swap_sort(int arr[]) { for (int i = 0; i < 9; i++) { for (int j = i + 1; j < 10; j++) { if (arr[i] > arr[j]) { int tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } } int main() { int arr[10]; for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } //select_sort(arr); //bubble_sort(arr); swap_sort(arr); for (int i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; }

四.插入法

抽出一个数据在前面的数据中找到相应的位置插入,然后继续下一个数据,知道完成排序。就是第一次排序将第一个数字取出放在第一位,将第二个数字取出放在第二位,以此类推。不断取出未排序的数字与排序好的数字比较,并插入。

上代码: 

void insert_sort(int arr[]) { int j = 0; for (int i = 1; i < 10; i++) { int flag = arr[i]; for (j = i - 1; j >= 0 && arr[j] > flag; j--) { arr[j + 1] = arr[j]; } arr[j + 1] = flag; } } int main() { int arr[10]; for (int i = 0; i < 10; i++) { scanf("%d", &arr[i]); } //select_sort(arr); //bubble_sort(arr); //swap_sort(arr); insert_sort(arr); for (int i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; }

祝:“码”思泉涌,下“指”如有神。 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118842.html

(0)
上一篇 2025-11-10 07:45
下一篇 2025-11-10 08:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信