简单排序算法
来源:互联网 发布:js 扩展window对象 编辑:程序博客网 时间:2024/06/13 17:35
第一个:冒泡排序:
简单来说,就是不停的与旁边的比较,然后交换,总之运算的交换次数挺多的,后面再来比较几种排序方法
void bubblesorthead(int* pData, int Count){ int itemp; for(int i = 0; i < Count - 1; i++) { for(int j = 1; j <= i + 1; j ++) { if(pData[j - 1] < pData[j]) { itemp = pData[j + 1]; pData[j + 1] = pData[j]; pData[j] = itemp; } } }}
这是一种实现形式,还有另一种
void bubblesorttail(int* pData, int Count){ int iTemp; for(int i = 0; i < Count; i ++) { for(int j = Count - 1; j >= i; j --) { if(pData[j] < pData[j - 1]) { iTemp = pData[j - 1]; pData[j - 1] = pData[j]; pData[j] = iTemp; } } }}
第二个:选择排序:这种排序感觉跟冒泡排序差不多,如果数据较多都很麻烦,就是一个数一个数的找,找出第n个最大的,再找第 n - 1个最大的……一直找到倒数第二个。
void SelectSort(int* pData,int Count){ int iTemp; int iPos; for(int i=0; i<Count-1; i++) { iTemp = pData[i]; iPos = i; for(int j=i+1; j<Count; j++) { if(pData[j] < iTemp) { iTemp = pData[j]; iPos = j; } } pData[iPos] = pData[i]; pData[i] = iTemp; } }
第三个:插入排序,思想跟选择排序不同,但是比较好理解,就是为元素找合适的位置然后插入其中
void insert(int* pData, int count){ for(i = 1; i < count; i ++) { int j = 0; while(j < i && pData[i] >= pData[j]) { j ++; } if(j < i) { int k = i; int temp = pData[i]; while(k > j) { pData[k] = pData[k - 1]; k --; } pData[k] = temp; } }}
0 0
- 【算法】简单排序算法
- 排序算法之简单排序
- 简单排序算法--冒泡排序
- 简单排序算法--选择排序
- 简单排序算法--插入排序
- 简单排序算法:合并排序
- 排序算法 简单选择排序
- 排序算法之简单排序
- 排序算法-简单选择排序.
- 排序算法---简单选择排序
- 【排序算法】简单选择排序
- 几个简单排序算法
- 简单的排序算法
- 算法:简单选择排序
- 排序算法-简单篇
- 简单排序算法总结
- java 简单排序算法
- 简单选择排序算法
- iOS之超时页面处理
- 怎么让局域网访问你的电脑上的网站?
- 06-图1 列出连通集 (25分)
- java LinkedList实现原理概述
- js keyup、keypress和keydown事件 详解
- 简单排序算法
- J-Children of the Candy Corn|BFS+DFS
- mysql 日期格式都是带百分号的,======如下
- List的add方法剖析
- 二叉树的遍历 Java版
- Visual Studio:error MSB8020
- Mac OS X下Visual Studio Code搭建Golang(Go语言)开发环境
- HWADDR配置错误导致network重启失败处理
- 基数排序思想和代码