首页 > 代码库 > 算法的学习 — 冒泡排序
算法的学习 — 冒泡排序
//冒泡排序算法的思路是: //1.n个数,i每相邻的两个数作比较,外层比较n-1次,如 4个数,3,2,1,4 ->3与2比,3再与1比,3再与4比,所以是n-1次,因为从0坐标开始,最大是<n-1, //2.内层是n-i-1,因为上面2已经与3比较了,所以是n-i-1次,如2不再与之前的3比了,因为已经比了,2比1,2比4->1不和2、3比了,直接和4比。 //3.如果从小到大,第一次是2,1,3,4 (3与1,2,4比) ;第二次是1,2,3,4(1与2,4比);第三次是1,2,3,4 (4只和3比较)。 //4.最小的时间复杂度是o(n),最大的时间复杂度是o(n平方)。 //方案1,自定义一些数字,需要存储数据的数组,交换的两个数i,j ,比较n个数,用来交换的temp //->1
void bubble_sore (int a[],int n); void bubble_sore (int a[],int n){ int i,j,temp; for (i = 0; i< n-1; i++) {//从第一个元素开始 for (j = 0; j <n-1-i; j++) { if(a[j] > a[j+1]){ temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } } #include <stdio.h> #define size 10 int main(int argc, const char * argv[]) { //->2 int a[size] = {100,200,3,6,4,9,333,44,444,332}; bubble_sore(a, size); for (int i = 0; i < size; i++) { printf("%d\n",a[i]); } return 0; }
未完待续。。。。。。。。。。
算法的学习 — 冒泡排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。