冒泡排序,选择排序的理解及代码实…
来源:互联网 发布:svd求逆矩阵 编辑:程序博客网 时间:2024/04/28 11:48
冒泡排序
大数下沉
1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应 该会是最大的数。
3)针对所有的元素重复以上的步骤,除了最后一个。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
for(int i=0; i1; i++){
每趟排序都会确定一个数,所以需要再循环len-i次,但因为每次都是 //相邻的两个数进行比较,为了a[j+1]不越界,让j循环到len-i-1时停止。
}
选择排序思想
外层 len-1
每一趟都是拿着一个元素与后面其他元素进行比较,找出最小值 void selectSort(int array[],intlen)
{
1、确定需排序趟数
for (int i = 0 ; i < len - 1; i++){ // 2、每一趟怎么处理
}
}
int arr[] = {..........};
选择排序代码实现:
void
select_sort(
int
*a,
int
n)
{
register
int
i,j,min,t;
for
(i=0;i
{
min=i;
//查找最小值
for
(j=i+1;j
if
(a[min]>a[j])
min=j;
//交换
if
(min!=i)
{
t=a[min];
a[min]=a[i];
a[i]=t;
}
}
}
冒泡排序代码实现:
#include
#define SIZE 8
void
bubble_sort(
int
a[],
int
n);
void
bubble_sort(
int
a[],
int
n)
{
int
i, j, temp;
for
(j = 0; j < n - 1; j++)
for
(i = 0; i < n - 1 - j; i++)
{
if
(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int
main()
{
int
number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int
i;
bubble_sort(number, SIZE);
for
(i = 0; i < SIZE; i++)
{
printf
(
"%d"
, number[i]);
}
printf
(
"\n"
);
- 冒泡排序,选择排序的理解及代码实…
- 选择排序,冒泡排序及二分查找的代码实现
- 冒泡和选择排序的理解
- [java]排序分类--及选择排序、插入排序、冒泡排序、快速排序的解释图和代码
- [java]排序分类--及选择排序、插入排序、冒泡排序、快速排序的解释图和代码
- 冒泡法排序与选择法排序:代码及分析
- C语言冒泡排序及选择排序优化<代码>
- 冒泡排序、插入排序、选择排序的原理及比较
- 冒泡排序、选择排序、插入排序代码
- 黑马程序员---冒泡排序和选择排序的理解
- 个人对于冒泡排序和选择排序的理解
- 冒泡排序,选择排序的的代码实现
- 选择排序与冒泡法排序的C代码实现
- 选择排序与冒泡法排序的C代码实现
- Java中的选择排序和冒泡排序的代码
- java实现数组的冒泡排序、选择排序代码
- 冒泡排序和选择排序代码
- 经典代码之冒泡排序,选择排序
- protocol及代理模式应用及理解
- CSS3 圆角详解
- 黑马程序员-Foundation框架及NSStr…
- 选择控制语句if和switch
- 函数的理解及代码实现
- 冒泡排序,选择排序的理解及代码实…
- HR直言:这几类求职者不会要!
- Java锁定USB
- 字符串的理解及代码实现
- 结构体的理解及代码实现
- Swift-初体验-常量变量
- [iOS]实现UIView的背景渐变
- BP神经网络
- Class PLBuildVersion i…