几种常用的排序方法
来源:互联网 发布:社交网络 完整版 编辑:程序博客网 时间:2024/06/06 07:01
几种常用的排序方法
1.冒泡排序
冒泡排序算法的运作如下:(比如按从小到大排列)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作第一步中的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
eg:如果sz个数我们只需要比较(sz-1)轮,每轮的次数也在减少,为(sz-1-轮数)。
程序如下:
#define _CRT_SECURE_NO_WARNINGS 1#include<string.h>#include<stdio.h>#include<iostream>void bubble_sort(int *arr, int sz){int i = 0;int j = 0;for (i = 0; i < sz - 1; i++){for (j = 0; j < sz - 1 - i; j++){if (*(arr+j)>*(arr+j + 1)){int k = 0;k = *(arr + j);*(arr + j) = *(arr + j + 1);*(arr + j + 1) = k;}}}}int main(){int a[10];int i = 0;int sz = sizeof(a) / sizeof(a[0]);printf("input 10 numbers:\n");for (i = 0; i < sz; i++){scanf("%d", &a[i]);}bubble_sort(a, sz);printf("the sorted numbers:\n");for (i = 0; i < 10; i++){printf("%d ", a[i]);}printf("\n");system("pause");return 0;}
运行结果如下:
eg:冒泡排序排序多个字符串,和上面道理一样,我们利用库函数strcmp来比较字符串。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>#include<iostream>void bubble_sort(char *str[],int n){int i, j;for (i = 0; i < n-1; i++){for (j = 0; j < n - i - 1; j++){if (strcmp(*(str + j), *(str + j + 1))>0){char* tmp = *(str + j);*(str + j )= *(str + j + 1);*(str + j + 1)= tmp;}}}}int main(){char* arr[] = {"abh","agu","ghu","bhk","sic"};int i = 0;int sz = sizeof(arr)/sizeof(arr[0]);bubble_sort(arr,sz);for (i = 0; i < sz; i++){printf("%s\n", arr[i]);}system("pause");return 0;}这里arr的元素为char型的指针,传参传的是每个字符串的首元素地址。
2.选择排序
阅读全文
0 0
- 几种常用的排序方法。
- 几种常用的排序方法
- 几种常用的排序方法
- 几种常用的排序方法
- 常用的几种简单的内部排序方法
- java的几种常用排序方法集合
- java 运用数组常用的几种排序方法
- 几种常用排序方法的C#实现
- 二级c语言之常用的几种排序方法
- 几种常用排序方法的简单实现
- 常用的几种排序
- 几种常用排序方法汇总
- 几种排序的方法
- 排序的几种方法
- 排序的几种方法
- 排序的几种方法
- 排序的几种方法
- 常用几种种排序方法!
- HDU 1166 敌兵布阵
- 对学习编程者的忠告
- 百度笔试--计算机视觉算法工程师
- 由邻接矩阵画有向图、无向图
- 并查集与带权并查集(转)
- 几种常用的排序方法
- mac中php开发环境
- Python-Matplotlib绘制简单图像
- linux字符设备(二)
- Python开发(一)操作Mysql数据库
- CAAnimation子类的小解
- Java中的数据类型
- leader选举过程详解
- 文章标题