代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
各种算法排序耗时比较
作者:
竹焮
/ 发布于
2014/12/30
/
529
目前只比较直接插入排序、简单选择排序、冒泡排序、快速排序。
#include "stdafx.h" #include <time.h> #include <stdlib.h> #define N 10 //直接插入排序 void insertSort(int nums[]){ //定义循环下标和临时变量 int i,j,temp; //循环:依次取出来 printf("直接插入排序结果如下:\n"); for( i = 1 ; i < N; i ++){ temp = nums[i]; for (j = i ; j >0 && temp < nums[j - 1]; j--) { nums[j] = nums[j - 1]; } nums[j] = temp; } for (i = 0; i < N; i++) { printf("%d ",nums[i]); } } //简单选择排序 void selectSort(int nums[]){ //定义循环下标和临时变量 int i,j,min,temp; //定义当前需判定的下标对应的值 printf("简单选择排序结果如下:\n"); for(i = 0 ; i < N - 1; i ++){ min = i; //找到当前第i轮的最小值的下标 for(j = i + 1 ; j < N; j ++){ if(nums[min] > nums[j]){ min = j; } } temp = nums[i]; nums[i]=nums[min]; nums[min]=temp; } for (i = 0; i < N; i++) { printf(" %d ",nums[i]); } } /* * 冒泡排序(Bubble Sort,台湾译为: * 泡沫排序或气泡排序)是一种简单的排序算法。 * 它重复地走访过要排序的数列,一次比较两个元素, * 如果他们的顺序错误就把他们交换过来。 * 走访数列的工作是重复地进行直到没有再需要交换, * 也就是说该数列已经排序完成。 */ //冒泡排序 void bubbleSort(int nums[]){ int i,j,temp; //控制循环的次数 printf("冒泡排序结果如下:\n"); for(i = 0; i < N - 1;i++){ //两两比较 for(j = 1 ; j < N - i ; j ++){ //判断相邻两数 if(nums[j] < nums[j-1]){ temp = nums[j]; nums[j]=nums[j-1]; nums[j-1]=temp; } } } for(i = 0; i < N ;i++){ printf("%d ",nums[i]); } } //快速排序 void quick_sort(int s[], int l, int r) { if (l < r) { //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1 int i = l, j = r, x = s[l]; while (i < j) { while(i < j && s[j] >= x) // 从右向左找第一个小于x的数 j--; if(i < j) s[i++] = s[j]; while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数 i++; if(i < j) s[j--] = s[i]; } s[i] = x; quick_sort(s, l, i - 1); // 递归调用 quick_sort(s, i + 1, r); } } void quit(int num[]){ quick_sort(num,0,N-1); printf("快速排序结果为:\n"); for(int t=0;t< N;t++){ printf("%d ",num[t]); } } //主函数 int main(int argc, char* argv[]) { int i,num[N]; srand(time(NULL)); for(i=0;i<N;i++){ num[i]=rand()%100; } printf("该数组的值为:\n"); for(i=0;i<N;i++){ printf("%d ",num[i]); } printf("\n\n\n\n"); clock_t start,finish; start=clock(); insertSort(num); finish=clock(); printf("\n耗时:%f \n",(long double)(finish-start)/CLOCKS_PER_SEC); printf("\n"); start=clock(); selectSort(num); finish=clock(); printf("\n耗时:%f \n",(long double)(finish-start)/CLOCKS_PER_SEC); start=clock(); bubbleSort(num); finish=clock(); printf("\n耗时:%f \n",(long double)(finish-start)/CLOCKS_PER_SEC); start=clock(); quit(num); finish=clock(); printf("\n耗时:%f \n",(long double)(finish-start)/CLOCKS_PER_SEC); printf("Hello World!\n"); return 0; }
试试其它关键字
排序
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
竹焮
贡献的其它代码
(
1
)
.
各种算法排序耗时比较
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3