排序方法
来源:互联网 发布:西瓜趣味编程营 编辑:程序博客网 时间:2024/05/22 13:54
冒泡排序
void bubble_sort(int a[],int n)
{
int i,j;
for(i = 0;i < n;i++)//循环次数
{
bool flag = true;
for(j = 0;j < n-i-1;j++)
{
if(a[j]>a[j+1])
{
a[j] ^= a[j+1];
a[j+1] ^= a[j];
a[j] ^= a[j+1];
flag = false;
}
}
if(flag)
{
break;
}
}
}
选择排序
void select_sort(int a[],int n)
{
int i,j;
for(i = 0;i < n-1;i++)
{
int min_index = i;
for(j = i+1;j < n;j++)
{
if(a[j] < a[min_index])
{
min_index = j;
}
}
if(min_index != i)
{
a[i] ^= a[min_index];
a[min_index] ^= a[i];
a[i] ^= a[min_index];
}
}
}
插入排序
void insert_sort(int a[],int n)
{
int i,j;
for(i = 1;i < n;i++)
{
int temp = a[i];
for(j = i; j > 0;j--)
{
if(a[j-1] > temp)
{
a[j] = a[j-1];
}else
{
break;
}
}
a[j] = temp;
}
}
shell排序
void shell_sort(int a[],int n)
{
int i,j;
int step = n/2;
for(step;step > 0;step /= 2)
{
for(i = step;i < n;i++)
{
int temp = a[i];
for(j = i;j >= step;j -= step)
{
if(a[j-step] > temp)
{
a[j] = a[j-step];
}else
{
break;
}
}
a[j] = temp;
}
}
}
归并排序
void merge_sort(int a[],int aSize,int b[],int bSize,int c[])
{
int cSize = aSize + bSize;
int i=0, j=0, k=0;
while(i < aSize && j < bSize)
{
if(a[i] < b[j])
{
c[k++] = a[i++];
}else
{
c[k++] = b[j++];
}
}
while(i < aSize)
{
c[k++] = a[i++];
}
while(j < bSize)
{
c[k++] = b[j++];
}
}
快速排序
void quick_sort(int a[],int start,int end)
{
if(start >= end)
return;
int low = start;
int height = end;
int key = a[start];
while(low < height)
{
while(low < height && a[height] >= key)
{
height--;
}
a[low] = a[height];
while(low < height && a[low] <= key)
{
low++;
}
a[height] = a[low];
}
a[low] = key;
quick_sort(a,start,low-1);
quick_sort(a,height+1,end);
}
二分查找
int binary_search(int a[],int n,int data)
{
int low = 0;
int height = n-1;
while(low <= height)
{
int mid = (low + height)/2;
if(a[mid] == data)
{
return mid;
}
if(a[mid] < data)
{
low = mid +1;
}else
{
height = mid -1;
}
}
return -1;
}
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- 排序方法
- Shell 职责
- VMware vSphere - 存储性能监控与分析之vscsiStats工具介绍
- hdu 1249 三角形
- ubuntu设置默认启动方式——命令行
- Palindrome 动态规划算法 +空间优化
- 排序方法
- jihigh自己总结
- 在android系统启动时获取通知
- 【RT-Thread中期检查】RT-Thread 加入IPV6支持
- poj2503(简单hash)
- ubuntu设置代理
- C和C++的区别
- Java静态引入
- 什么时候用sizeof,什么时候用strlen