C语言冒泡排序
来源:互联网 发布:profili软件 编辑:程序博客网 时间:2024/05/18 00:53
转自:百度知道
冒泡排序每一趟排序把最大的放在最右边。
比如:
87 12 56 45 78
87和12交换:12 87 56 45 78
87和56交换: 56 87 45 78
87和45交换: 45 87 78
87和78交换: 78 87
到此第一趟排序结束,接下来的每一趟排序都是这样。
#include<stdio.h>
void
Print(
int
*num,
int
n)
{
int
i;
for
(i = 0; i < n; i++)
printf
(
"%d "
, num[i]);
puts
(
"\n"
);
return
;
}
void
Bubble_Sort(
int
*num,
int
n)
{
int
i, j;
for
(i = 0; i < n; i++)
{
for
(j = 0; i + j < n - 1; j++)
{
if
(num[j] > num[j + 1])
{
int
temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
Print(num, n);
}
}
return
;
}
int
main()
{
int
num[8] = {87, 12, 56, 45, 78};
Bubble_Sort(num, 5);
return
0;
}
C qsort函数排序
void qsortTest();#define NUM 40void fillarray (double ar[], int n);void showarray (const double ar[],int n);int mycomp (const void *p1, const void *p2);//数组排序int comp (const void *p1, const void *p2); //比较姓名struct names { char first[40]; char last[40];};int main(int argc, const char * argv[]) { struct name b; b.i = 10; //mathTest(&b); qsortTest(); return 0;}#pragma mark - 排序void qsortTest(){ //qsort() 比较元素大小排序 double vals[NUM]; fillarray(vals, NUM); puts("Random list: "); showarray(vals, NUM); qsort(vals, NUM, sizeof(double), mycomp); puts("\nSorted list: "); showarray(vals, NUM); //比较姓名 }//数组赋值void fillarray (double ar[], int n){ int index; for (index = 0; index<n; index++) { ar[index] = (double) rand()/ ((double) rand()+0.1); }}//读取数组void showarray (const double ar[],int n){ int index; for (index = 0; index<n; index++) { printf("%9.4f ",ar[index]); if (index % 6 == 5) { putchar('\n'); } } if (index % 6 != 0) { putchar('\n'); }}int mycomp (const void *p1, const void *p2){ /* 需要使用指向double 的指针访问值 */ const double *a1 = (const double *)p1; const double *a2 = (const double *)p2; if (*a1 < *a2) { return -1; } else if (*a1 == *a2) { return 0; } else { return 1; }}int comp (const void *p1, const void *p2){ /* 需要使用指向double 的指针访问值 */ const struct names *a1 = (const struct names*)p1; const struct names *a2 = (const struct names *)p2; int res; res = strcmp(a1->last,a2->last); if (res != 0) { return res; } else { return strcmp(a1->first, a2->first); }}
my comp打印结果
Random list:
0.0001 1.6475 2.4332 0.0693 0.7268 0.7383
24.0357 0.1009 87.1828 5.7361 0.6079 0.6330
1.6058 0.1406 0.5933 1.1943 5.5295 2.2426
0.8364 2.7127 0.2514 0.9593 8.9635 0.7139
0.6249 1.6044 0.8649 2.1577 0.5420 15.0123
1.7931 1.6183 1.9973 2.9333 12.8512 1.3034
0.3032 1.1406 18.7880 0.9887
Sorted list:
0.0001 0.0693 0.1009 0.1406 0.2514 0.3032
0.5420 0.5933 0.6079 0.6249 0.6330 0.7139
0.7268 0.7383 0.8364 0.8649 0.9593 0.9887
1.1406 1.1943 1.3034 1.6044 1.6058 1.6183
1.6475 1.7931 1.9973 2.1577 2.2426 2.4332
2.7127 2.9333 5.5295 5.7361 8.9635 12.8512
15.0123 18.7880 24.0357 87.1828
禁用assert 异常断言
#define NDEBUG //禁用assert#include <assert.h>
- C语言冒泡排序
- 冒泡排序(C语言)
- C语言--冒泡排序
- C语言-冒泡排序
- C语言冒泡排序
- c语言冒泡排序
- c语言冒泡排序
- c语言 冒泡排序
- 冒泡排序 C语言
- C语言冒泡排序
- C语言--冒泡排序
- 【C语言】冒泡排序
- 【C语言】冒泡排序
- c语言 冒泡排序
- C语言-----冒泡排序
- C语言冒泡排序
- C语言冒泡排序
- C语言-冒泡排序
- 数据库连接池
- android View的测量问题
- iOS7以后NavigationBar下的UIScrollView
- 条件高斯分布
- CentOS7.1 KVM虚拟化之虚拟机内存、CPU调整(6)
- C语言冒泡排序
- JVM:内存结构和相关参数
- 安装scrapy时遇到的问题
- ubantu 常见问题
- 第一回:优秀的产品经理需要具备哪些能力——老吴说产品
- 一个简单的遍历选定目录的PowerShell脚本
- 一位大学生的坎坷辛苦求学路
- android TextView加下划线的方法
- D12