算法总结
来源:互联网 发布:索马里海盗抢军舰知乎 编辑:程序博客网 时间:2024/06/05 22:52
1.快速排序
快速排序时间复杂度为O(nlogn) ,空见复杂度为O(logn)~O(n)
public int[] QuickSort(int[] arr,int length,int index)
{
int start;
start = arr[index];
int i = length - 1;
int j = index;
while (j < i)
{
while (start < arr[i])
{
i--;
}
if (j < i)
{
arr[j] = arr[i];
j++;
}
while (arr[j] < start)
{
j++;
}
if (j < i)
{
arr[i] = arr[j];
i--;
}
}
arr[i] = start;
QuickSort(arr, i,0);
QuickSort(arr, length , i);
return arr;
}
}
2.冒泡排序
时间复杂度:O(n2) 空间复杂度:O(1) ;是稳定的排序方式、
public static int[] BubbleSort(int[] arr, int length)
{
int n=1;
for (; n < length; n++)
{
int r = 0;
int start = 0,m = 1;
for (; m < length; m++)
{
if ((r < length -1)&&(arr[r]>=arr[r+1]))
{
start = arr[r];
arr[r] = arr[r + 1];
arr[r + 1] = start;
Console.WriteLine("{0},{1},{2}", arr[r], arr[r + 1],r);
r++;
}
}
}
return arr;
}
3. 选择排序
平均时间复杂度:O(n2),空间复杂度 O(1) ,属于稳定性排序;
public int[] SelectSort(int[] arr, int length)
{
int n=1;
int index = 0;
int start;
for (; n < length; n++, index++)
{
start = arr[index];
int a = index;
for (int i = index; i < length-1;i++ )
{
if((start > arr[i + 1]) && (i < length))
{
start = arr[i + 1];
a = i + 1;
}
}
arr[a] = arr[index];
arr[index] = start;
}
return arr;
}
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 算法总结
- 关于ios 在引入第三方类库时与手动内存管理产生的冲突
- 如何用ResourceBundle来读取配置文件
- replace
- CocoaPods安装和使用教程
- 禁止WordPress菜单函数 wp_nav_menu() 输出 div 和 ul 标签
- 算法总结
- NOTE:NEURAL NETWORKS
- Android定时器的用法、结束进程方法
- 手绘风 PPT:Google 是如何运作的?
- 远程登陆显示权限不足问题
- MFC框架分开.h和.CPP的意义
- 退出activity
- c语言实现:求100~200之间的素数
- JAVA正则表达式语法大全