C语言四种常用排序
来源:互联网 发布:盛世网络剧在线观看 编辑:程序博客网 时间:2024/05/21 09:45
//冒泡排序 稳定
void sort1(int a[],unsignedint n){
for (int i = 0; i < n ;i++) {
for (int j = i +1; j < n ;j++) {
if(a[i]>a[j]){
a[i] = a[j] + a[i];
a[j] = a[i] - a[j];
a[i] = a[i] - a[j];
}
}
}
}
//选择排序 不稳定
void sort2(int a[],unsignedint n){
int temp = 0;
int index = 0;
for (int i = 0; i < n ;i++) {
temp = a[i];
index = i;
for (int j = i +1; j < n;j++) {
if( a[j] < temp){
temp = a[j];
index = j;
}
}
if(i==index){
continue;
}else{
a[i] = a[index] + a[i];
a[index] = a[i] - a[index];
a[i] = a[i] - a[index];
}
}
}
//插入排序 稳定
void sort3(int a[],unsignedint n){
int temp=0;
for (int i = 0; i < n ;i++) {
for (int j =0; j < i ;j++) {
if(a[i] < a[j]){
temp = a[i];
for(int k = i; k > j;k--){
a[k] = a[k-1];
}
a[j] = temp;
}
}
}
}
void sortRecursive(int a[],int first,int last){
int temp=0;
int index=first;
for(int i=first;i<=last;i++){
if(a[i]<a[index]){
temp = a[i];
for(int k = i; k > index;k--){
a[k] = a[k-1];
}
a[index] = temp;
index++;
}
}
if(last==first||last-first==1||first>last){
return;
}
sortRecursive(a, first, index - 1);
sortRecursive(a, index + 1, last);
}
//快速排序 不稳定
void sort4(int a[],unsignedint n){
int i=0;
int j=n-1;
sortRecursive(a, i, j);
}
- C语言四种常用排序
- C语言的四种排序代码
- C语言常用排序
- C语言实现4种常用排序
- C语言几种常用排序
- C语言常用排序详解
- C语言常用排序详解
- 常用排序方法(C语言)
- C 语言实现常用排序
- c语言种必须掌握的四种排序方法
- C语言实现八种基本排序(四)
- C语言四种排序算法完整程序
- C语言冒泡法排序(四种方法)
- C语言常用的四种跳出语句
- 几种常用排序算法的C语言实现
- 几种常用排序算法的C语言实现
- C语言中常用三种排序方法
- 常用的6种排序C语言实现
- 中科院中文分词系统ICTCLAS之人名识别词典分析
- smarty 静态页面
- sharedPreference用法
- 数据仓库逻辑区域及各区域的功能和特点
- ant 调用子任务
- C语言四种常用排序
- OGNL一些知识
- 文件夹拒绝访问
- C语言 时间戳和标准格式的转换
- VC编译错误总结
- VS2010调试Qt 5
- oracle 创建同义词
- C#前后台调用js代码&父窗体执行iframe的保存事件&&弹出窗口中刷新父页面中的iframe页面
- JNI遇到error: request for member 'FindClass' in something not a structure or union