做算命网站赚钱吗,wordpress 课程系统,wordpress主题制作价格,网站响应式是什么意思冒泡排序是我们学习的第一种排序算法。应该也算是最简单、最经常使用的排序算法了。无论怎么说。学会它是必定的。今天我们就用C语言来实现该算法。演示样例代码已经上传至#xff1a;https://github.com/chenyufeng1991/BubbleSort算法描写叙述例如以下#xff1a;#xff… 冒泡排序是我们学习的第一种排序算法。应该也算是最简单、最经常使用的排序算法了。无论怎么说。学会它是必定的。今天我们就用C语言来实现该算法。演示样例代码已经上传至https://github.com/chenyufeng1991/BubbleSort算法描写叙述例如以下1比較相邻的前后两个数据。假设前面数据大于后面的数据就将两个数据交换2这样对数组的第0个数据到N-1个数据进行一次遍历后。最大的一个数据就到了最后一个位置也就是下标为N-1的位置沉到了水底。3N N-1假设N不为0就反复12两步否则排序完毕。也就是对数组的第0个数据到N-2个数据再次进行遍历完整的代码实现例如以下//
// main.c
// BubbleSort
//
// Created by chenyufeng on 16/1/28.
// Copyright © 2016年 chenyufengweb. All rights reserved.
//#include stdio.htypedef int BOOL;
#define true 1
#define false 0int *bubbleSort01(int arr[],int len);
void bubbleSort03(int arr[],int len);int main(int argc, const char * argv[]) {int array[7] {150,111,1000,99,300,10,189};/***指针向后移位*/// int *p bubbleSort02(array, 7);//// for (int i 0; i 7; i) {// printf(%d ,*(pi));// }/*** 能够使用传引用的方式实现例如以下;这里不须要返回值直接打印就可以,推荐使用这样的方式方便。*/bubbleSort04(array, 7);for (int i 0; i 7; i) {printf(%d ,array[i]);}return 0;
}//常规的冒泡
int *bubbleSort01(int arr[],int len){int temp;for (int i 0; i len; i){for (int j 1; j len - i; j) {if (arr[j - 1] arr[j]) {temp arr[j - 1];arr[j - 1] arr[j];arr[j] temp;}}}return arr;
}//常规的冒泡不须要返回值。
void bubbleSort03(int *arr,int len){int temp;for (int i 0; i len; i){for (int j 1; j len - i; j) {if (arr[j - 1] arr[j]) {temp arr[j - 1];arr[j - 1] arr[j];arr[j] temp;}}}
}
当然也能够把上面的交换元素的代码抽取出来。写成一个交换函数swap。代码实现例如以下//
// main.c
// BubbleSort
//
// Created by chenyufeng on 16/1/28.
// Copyright © 2016年 chenyufengweb. All rights reserved.
//#include stdio.htypedef int BOOL;
#define true 1
#define false 0int *bubbleSort01(int arr[],int len);
void swap(int *a,int *b);int main(int argc, const char * argv[]) {int array[7] {150,111,1000,99,300,10,189};/***指针向后移位*/// int *p bubbleSort02(array, 7);//// for (int i 0; i 7; i) {// printf(%d ,*(pi));// }/*** 能够使用传引用的方式。实现例如以下;这里不须要返回值。直接打印就可以,推荐使用这样的方式方便*/bubbleSort01(array, 7);for (int i 0; i 7; i) {printf(%d ,array[i]);}return 0;
}//常规的冒泡。
int *bubbleSort01(int arr[],int len){int temp;for (int i 0; i len; i){for (int j 1; j len - i; j) {if (arr[j - 1] arr[j]) {// temp arr[j - 1];
// arr[j - 1] arr[j];
// arr[j] temp;//这里也能够使用swap交换函数swap(arr[j - 1], arr[j]);}}}return arr;
}void swap(int *a,int *b){int temp;temp *a;*a *b;*b temp;
}交换类排序借助数据元素之间的相互交换进行排序的一种方法。如冒泡排序、高速排序。插入类排序将无序的各个元素依次插入到已经有序的线性表中。如直接插入排序、希尔排序。选择排序扫描整个线性表选出最小的元素。将它交换到表的最前面。然后对剩下的继续相同的方法直到子表为空。如直接选择排序、堆排序。 说明下冒泡排序的时间复杂度为O(n^2)空间复杂度为O(1).是一种稳定的排序。本文參考http://blog.csdn.net/morewindows/article/details/6657829 转载于:https://www.cnblogs.com/claireyuancy/p/7082226.html