C语言 冒泡排序选择排序

简介: 本文目录1. 前言2. 冒泡排序说明3. 冒泡排序代码4. 选择排序说明5. 选择排序代码6. 后语

1. 前言

哈哈,最常用的数据结构应该是数组吧,有人说是单一变量,单一变量那也不叫结构啊。


所以一般数据结构的第一课是数组,跟数组这种数据结构相关的操作,最常见的就是排序啦。


排序里面最简单也是最常用的,应该就是冒泡排序和选择排序了。


2. 冒泡排序说明

冒泡的意思就是从水底往上面冒泡(我们把数组第一个元素看做水底),对于数组来说,是通过比较和换位,每次把最大(最小)的一个元素移动到顶上来,然后剩下的再次冒泡排序。


3. 冒泡排序代码

#include<stdio.h>


//冒泡排序 此处演示从小到大排序

void bubbleSort(int arr[], int length)

{

int i,j,temp;

for (i = 0; i < length-1; i++) //一共有n-1轮

{

 for (j = 0; j < length - 1-i; j++) {//每轮把最大的1个放到了最后面

  if (arr[j] > arr[j + 1]) //交换

  {

      temp = arr[j];

   arr[j] = arr[j + 1];

   arr[j + 1] = temp;

  }

 }

}

}


int main()

{

//待排序数组

int length = 10;

int arr[10] = {1,3,5,7,2,4,6,8,10,9};

int i;

printf("\n排序前:");

for (i = 0; i < length; i++)

{

 printf("%d ",arr[i]);

}

//排序

bubbleSort(arr, length);

printf("\n排序后:");

for (i = 0; i < length; i++)

{

 printf("%d ", arr[i]);

}

return 1;

}



4. 选择排序说明

相对于冒泡排序,选择排序更加好理解,所以我平时写排序最多的,就是选择排序了。


扫描数组,把最大(最小)的放到第一个位置,然后剩下再扫描,把最大(最小)放第二个位置,最后就排序完了。


5. 选择排序代码

#include<stdio.h>


//选择排序 此处演示从小到大排序

void selectSort(int arr[], int length)

{

int i,j,temp;

for (i = 0; i < length-1; i++) //从第一个位置开始选择最小的

{

 for (j = i+1; j < length; j++) {//与剩下的依次比较

  if (arr[i] > arr[j]) //交换

  {

      temp = arr[i];

   arr[i] = arr[j];

   arr[j] = temp;

  }

 }

}

}


int main()

{

//待排序数组

int length = 10;

int arr[10] = {1,3,5,7,2,4,6,8,10,9};

int i;

printf("\n排序前:");

for (i = 0; i < length; i++)

{

 printf("%d ",arr[i]);

}

//排序

selectSort(arr, length);

printf("\n排序后:");

for (i = 0; i < length; i++)

{

 printf("%d ", arr[i]);

}

return 1;

}



6. 后语

说实话平时也能写出排序来,但是还真分不清自己到底用了什么排序…借此机会回顾下可能是的,最初的算法。

相关文章
|
8月前
|
C语言
【C语言】拿捏冒泡排序(图解)
【C语言】拿捏冒泡排序(图解)
|
8月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
79 0
|
3月前
|
算法 搜索推荐 C语言
【C语言】冒泡排序+优化版
【C语言】冒泡排序+优化版
|
3月前
|
C语言
【c语言】qsort函数及泛型冒泡排序的模拟实现
本文介绍了C语言中的`qsort`函数及其背后的回调函数概念。`qsort`函数用于对任意类型的数据进行排序,其核心在于通过函数指针调用用户自定义的比较函数。文章还详细讲解了如何实现一个泛型冒泡排序,包括比较函数、交换函数和排序函数的编写,并展示了完整的代码示例。最后,通过实际运行验证了排序的正确性,展示了泛型编程的优势。
43 0
|
6月前
|
搜索推荐 C语言
C语言冒泡排序(附源码和动态图)
冒泡排序是一种简单的排序算法,其基本思想是通过重复遍历待排序的数列,比较每对相邻元素的值,如果它们的顺序错误(即满足一定的排序条件,如从小到大排序时前一个元素大于后一个元素),就交换它们的位置。这个过程就像水底的气泡一样逐渐向上冒,因此得名“冒泡排序”。
136 1
|
7月前
|
存储 搜索推荐 C语言
C语言探索:选择排序的实现与解读
C语言探索:选择排序的实现与解读
60 1
|
7月前
|
算法 搜索推荐 C语言
C语言冒泡排序介绍
C语言冒泡排序介绍
|
8月前
|
存储 C语言
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)(下)
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)
44 1
|
7月前
|
C语言
C语言----冒泡排序
C语言----冒泡排序
|
7月前
|
搜索推荐 前端开发 C语言
C语言探索:冒泡排序的实现与解读
C语言探索:冒泡排序的实现与解读
79 0

热门文章

最新文章