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. 后语

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

相关文章
|
1月前
|
C语言
【C语言】拿捏冒泡排序(图解)
【C语言】拿捏冒泡排序(图解)
|
1月前
|
搜索推荐 算法 C语言
C语言:冒泡排序
C语言:冒泡排序
|
1月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
39 0
|
1天前
|
算法 搜索推荐 C语言
C语言冒泡排序介绍
C语言冒泡排序介绍
5 0
|
23天前
|
存储 搜索推荐 C语言
C语言探索:选择排序的实现与解读
C语言探索:选择排序的实现与解读
18 1
|
7天前
|
C语言
C语言----冒泡排序
C语言----冒泡排序
|
1月前
|
存储 C语言
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)(下)
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)
24 1
|
23天前
|
搜索推荐 前端开发 C语言
C语言探索:冒泡排序的实现与解读
C语言探索:冒泡排序的实现与解读
14 0
|
1月前
|
算法 C语言 C++
C语言进阶:冒泡排序函数初步实现
C语言进阶:冒泡排序函数初步实现
19 0
|
1月前
|
存储 C语言
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)(上)
C语言初阶④(数组)知识点+编程作业(三子棋,冒泡排序)
25 0