博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法
阅读量:5064 次
发布时间:2019-06-12

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

class SortArrange    {        public struct SqlList        {           public int[] data;           public int length;        }        private static void Swap(ref SqlList L, int i, int j)        {            int temp = L.data[i];            L.data[i] = L.data[j];            L.data[j] = temp;        }        ///         /// 最基础的排序算法,效率最差,不算标准的冒泡排序算法,不满足“两两相邻要素比较”,只是让每一个关键字比较交换得出;        ///         ///         public static int BubbleSortBase(SqlList L)        {            int count = 0;            for(int i=0;i
L.data[j]) { Swap(ref L, i, j); count++; } } } return count; } ///
/// 标准的冒泡排序,实现两两比较互换,效率高于基础排序算法 /// ///
排序数组 public static int BubbleSortStandard(SqlList L) { int count = 0; for (int i = 0; i < L.length; i++) { for (int j = L.length - 2; j >= i; j--) { if (L.data[j] > L.data[j + 1]) { Swap(ref L, j, j + 1); count++; } } } return count; } ///
/// 用flag标志判断在已经有序的情况下进行不需要的判断 /// ///
排序数组 public static int BubbleSortImprove(SqlList L) { int count = 0; bool flag = true; for (int i = 0; i < L.length&&flag; i++) { flag = false; for (int j = L.length - 2; j >= i; j--) { if (L.data[j] > L.data[j + 1]) { Swap(ref L, j, j + 1); flag = true; count++; } } } return count; } ///
/// 简单选择排序,算法类似基础排序算法,减少了交换次数,尽管没提高比较次数,但是减少了多余的交换 /// 性能上略优于冒泡排序,时间复杂度为O(n2) /// ///
public static int SelectSort(SqlList L) { int i, j, min,count=0; for (i = 0; i < L.length; i++) { min = i; for (j = i + 1; j < L.length; j++) { if (L.data[min] > L.data[j]) { min = j; } } if (min != i) { Swap(ref L, i, min); count++; } } return count; } ///
/// 直接插入排序,默认第一个数是排序好的,只是插入有序数列的左右边选择问题,性能优于冒泡排序和选择排序 /// 需要比较次数:(n+2)(n-1)/2,移动的次数:(n+4)(n-1)/2,时间复杂度为O(n2) /// ///
public static int StraightInsertSort(SqlList L) { int i, j,temp,count=0; for (i = 1; i < L.length; i++) { if (L.data[i] < L.data[i - 1]) { temp = L.data[i]; for (j = i - 1; j >= 0 && L.data[j] > temp; j--) { L.data[j + 1] = L.data[j]; count++; } L.data[j + 1] = temp; } } return count; } }

  

转载于:https://www.cnblogs.com/dengshiwei/p/4026527.html

你可能感兴趣的文章
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
Android TextView加上阴影效果
查看>>
《梦断代码》读书笔记(三)
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
输入月份和日期,得出是今年第几天
查看>>
pig自定义UDF
查看>>
Kubernetes 运维学习笔记
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
枚举的使用
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
日志框架--(一)基础篇
查看>>
关于源程序到可运行程序的过程
查看>>
转载:mysql数据库密码忘记找回方法
查看>>