选择排序&插入排序&希尔排序
来源:互联网 发布:放置江湖安卓修改数据 编辑:程序博客网 时间:2024/05/19 19:41
一 选择排序思路
在一趟排序中,每次选择一个最小的值,然后在一趟比较完成后,在进行交换。
二选择排序代码实现
/*************************************************Function: SelectSoftDescription: 选择排序Input;k:待排序的数组 length:数组的长度Output:无Return:无Others: 无*************************************************/#include "stdafx.h"#include"SelectSoft.h"#include"bubbleSoft.h"void SelectSoft(int k[], int length){int min;for (int i = 0; i < length-1; ++i){min = i;for (int j = i+1; j < length;++j){if (k[j] < k[min]){min = j;}}if (min != i){Swap(k, i, min);}}}
三 插入排序思路
直接插入排序是默认前面已经排好序了,然后将新的数组从后插入到排好序的相应位置,然后插入完成后就会变成一个排好序的数列
四 直接插入排序代码
/*************************************************Function: InsertSoftDescription: 插入排序Input;k:待排序的数组 length:数组的长度Output:无Return:无Others: 一般而言 在排序的个数少于7的时候效率很好*************************************************/void InsertSoft(int k[], int length){for (int i = 1; i < length; ++i){for (int j = i; j > 0; --j){//将待排数据插入到合适的位置if (k[j] < k[j - 1]){Swap(k,j,j-1);}}}}
五 希尔排序思路
思路:希尔排序是将其分为n个组,并对其n个组进行插入排序,首先间距为length/n 下一趟排序在length/n/n ...
直到增量为0为止 时间复杂度低于 O(n^2)
直到增量为0为止 时间复杂度低于 O(n^2)
六 希尔排序代码
/*************************************************
Function: SellSoft
Description: 希尔排序
Input;
k:待排序的数组 length:数组的长度 gap:希尔排序的间隔
Output: 无
Return: 无
Others: 是直接插入排序算法的一种更高效的改进版本
*************************************************/
Function: SellSoft
Description: 希尔排序
Input;
k:待排序的数组 length:数组的长度 gap:希尔排序的间隔
Output: 无
Return: 无
Others: 是直接插入排序算法的一种更高效的改进版本
*************************************************/
void SellSoft(int k[], int length, int n){int gap = length;do{gap = gap / n;for (int i = gap; i < length; ++i){for (int j = i; j> gap-1; j = j - gap){if (k[j]<k[j-gap]){Swap(k,j,j-gap);}}}} while (gap>1);}
0 0
- 选择排序、插入排序、希尔排序
- 选择排序&插入排序&希尔排序
- 选择排序,插入排序,希尔排序
- 选择排序、插入排序、希尔排序总结
- 希尔排序,选择排序,插入排序 java
- 【排序】冒泡排序、选择排序、插入排序、希尔排序
- 冒泡--选择--插入--希尔排序
- C#冒泡排序、选择排序、插入排序和希尔排序
- 初级排序算法(选择排序、插入排序、希尔排序)
- 冒泡排序,插入排序,选择排序,希尔排序
- C#冒泡排序、选择排序、插入排序、希尔排序
- 选择排序 直接插入排序 希尔排序 堆排序
- 五、排序算法(选择排序、插入排序、希尔排序)
- 选择排序、插入排序、希尔排序与归并排序
- 初级排序-选择排序、插入排序、希尔排序总结
- Java排序之选择排序、插入排序、希尔排序
- 插入排序--希尔排序
- 插入排序 希尔排序
- POJ 3183 Stump Removal G++
- 可调用对象
- 增加Android下spinner控件的点击下拉列表自动更新事件并实例应用--USB摄像头在spinner内下拉更新(一)
- Java复习IO之File类
- C语言程序运行后 出现exe已停止工作
- 选择排序&插入排序&希尔排序
- 记:第一篇CSDNBLOG
- PAT 1099
- (转)《Billions》第二季回归,现实中的SAC也回来了
- 调试静态库
- php之clone 复制对象以及__clone魔术方法
- SCOI2011飞镖
- Linux内核分析实验2——一个简单的内核代码分析
- 【错误解决】 java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp