选择排序和冒泡排序
来源:互联网 发布:js pageyoffset 编辑:程序博客网 时间:2024/05/29 17:24
今天开始写博客,加油。
1冒泡排序
我没有选择使用函数,而是分成了一个个程序去写,一是因为函数我自己本来也不熟练,二是感觉分开来写更加的清晰
1,冒泡排序1
/*
*2017年7月11日17:28:13*目的:冒泡排序1 (以增序为列)
*思路:**这种冒泡排序核心思想等同于选择排序,但并不会提取最值,
比较次数等同于选择排序法,但明显劣与选择排序,因为数据交换量比选择排序多的多。
1)创建一个数组,提取第一个值arr[0],依次与后面的变量进行比较
若arr[0]>arr[n],则交换arr[0]与arr[n]。
2)重复比较直到a[n-1]结束。
* */
#include<stdio.h>
int main()
{
int a[10] = {10,9,8,7,6,5,4,3,2,1};
int i,j,temp;
for(i=0;i<9;i++) //外部循环,循环n-1次,每循环一次,排序第n个数
{
for(j=i+1;j<=9;j++) //内部循环,逐个比较
{
if (a[i]>=a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(i=0;i<=9;i++)
printf(i!=9?"%-5d":"%d\n",a[i]); //三目运算符
return 0;
}
2冒泡排序2
/*
* 2017年7月11日17:59:24
* 目的:冒泡排序2/沉底排序 (以自增为列)
* 思路:**这种排序方法与第一种冒泡排序方法相比,思路不同。
* 但是比较次数和数据转换次数都是相同的,所以也称为顶外一种冒泡排序法
* 1)创建一个数组,依次比较第a[j]和a[j+1]的值(初始j为0),若a[j]<a[j+1],则交换a[j]和a[j+1]的值,知道j=n-1结束,
* 确保一次循环后,数组的最后一个值是这个数组的最大值。
* 2)排除数组对最后一个数的考虑。
* 3)循环1),直到待考虑的数组个数为1时。
* */
#include<stdio.h>
int main()
{
int a[10] = {10,9,8,7,6,5,4,3,2,1};
int i,j,temp;
for(i=0;i<9;i++) // 外部循环,每循环一次,数组排序好最后一个考虑范围内的数。
{
for(j=0;j<9-i;j++) // 这里的判断条件比较那计算,要考虑存在a[j+1]的情况,
{
if(a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i=0;i<=9;i++)
printf(i!=9?"%-5d":"%d\n",a[i]);
return 0;
}
2选择排序
/*
* 2017年7月11日15:53:58
* 目的:选择排序的学习 (以增序为列)
* 思路;1)建立一个数组,选择一个标杆为a[min],循环比较其余aar[n],若arr[min]>=arr[j],则交换。
* 循环结束,查找到了最小值,并寄存在arr[0]的变量中。
* 2)把arr[1]的值放到标杆a[min]中,循环比较arr[1]后的值,查找到其余arr[1]到arr][n]中的
* 最小值,并寄存在arr[民]的变量中。
* 3)重复2)直到数组arr[n-1]结束。
* */
#include <stdio.h>
int main()
{
int arr[10] = {10,9,8,7,6,5,4,3,2,1};
int i,j,min,temp;
for(i=0;i<9;i++) //外部循环,循环n-1次,每循环n次,排序第n个数
{
min = i;// 给带排序数赋值
for (j=i+1;j<=9;j++) //内部循环,选择出未排序的数中的最小值
{
if (arr[min] >= arr[j])
min = j;
}
if (i != min) //最小值与待排序数进行比较
{
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
for (i=0;i<=9;i++)
{
printf((i!=9?"%-5d":"%d\n"),arr[i]);
}
return 0;
}
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 选择排序和冒泡排序
- 冒泡排序 和 选择排序
- 冒泡排序和选择排序
- 选择排序和冒泡排序
- 冒泡排序和选择排序
- 冒泡排序和选择排序
- io-0-socket
- 接口和抽象类
- python 单例模式
- 当程序发布特别慢的时候,如何高效使用Eclipse
- VS2015编译OpenCV320的32位和64位动态库和静态库
- 选择排序和冒泡排序
- JAVA企业面试题精选 Java基础 11-20
- 安卓开发规范
- Codeforces GYM 100646E: Su-Su-Sudoku 题解
- java-包,权限修饰符
- 网站根目录权限设置
- javaweb验证码代码
- extend扩展jQuery工具方法(一)
- Web服务器工作原理概述