博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几个简单的排序 source code
阅读量:5285 次
发布时间:2019-06-14

本文共 1310 字,大约阅读时间需要 4 分钟。

//选择排序void chooseSort(unsigned char *list, int length){	int i,j,temp,minIndex;	//要遍历的次数	for(i = 0; i < length - 1; i++)	{		//设当前最小值序号		minIndex = i;		//把序列后面的数据作比较		for(j = i + 1; j < length; j++)		{			if(list[minIndex] > list[j])			{				minIndex = j;			}		}		temp = list[i];		list[i] = list[minIndex];		list[minIndex] = temp;	}}//冒泡排序void bubbleSort(unsigned char *list, int length){	int i,j,temp;	for(i = 0; i < length; i++)	{		for(j = 0; j < length - i - 1; j++)		{			if(list[j+1] < list[j])			{				temp = list[j + 1];				list[j + 1] = list[j];				list[j] = temp;			}		}	}}//快速排序void quickSort(unsigned char *list, int left, int right){	if(left < right)	{		//递归调用quickSort		int i = division(list,left,right);		quickSort(list, left, i-1);		quickSort(list, i+1, right);	}}int division(unsigned char *list,int left,int right){	if(left>right)		return -1;		int base = list[left];	//任何情况下左指针比右指针要小	while(left < right)	{		//从右指针向左移动,找到比base要大(或等于)的值		while((left < right) && (list[right] >= base))			right -= 1;				//把该值替代左指针指向的值		list[left] = list[right];		//从左指针向右移动,找到比base要小(或等于)的值		while((left < right) && (list[left] <= base))			left += 1;		//把该值替代右指针的值		list[right] = list[left];	}	//把base插入当前左指针指向的地方	list[left] = base;	return left;}

  测试后觉得 快速排序 最快。

转载于:https://www.cnblogs.com/omenglvrong1/p/4367921.html

你可能感兴趣的文章
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
MetaWeblog API Test
查看>>
c# 文件笔记
查看>>
类和结构
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
线程池的概念
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>