首页 > 代码库 > 简单排序:插入,选择和冒泡
简单排序:插入,选择和冒泡
void selectsort(int a[],int n) // 选择排序的思路就是每次找到当前序列中最小的元素,然后交换 { // 就是选择最小的,然后交换 int i,j,flag; for(i = 0;i<n;i++) { flag = i; //当前元素 for(j = i+1;j<n;j++) { if(a[j]<a[flag]) flag = j; //在剩下未排序的数组中找到最小元素的下标 } int temp = a[i]; //交换当前元素和最小元素。 a[i] = a[flag]; a[flag] = temp; } } void insertsort(int a[],int n) //插入排序的思路是,每次对当前元素进行插入,插入到合适的位置,带来的代价就是每次都要多次移动元素 { int i,j,t; for(i = 1;i<n;i++) { t = a[i]; for(j = i-1; j>=0 &&t<a[j];j--) a[j+1] = a[j]; // 比较直到找到比当前元素更小的位置,移动后面的元素 a[j+1] = t; // 插入 } } void bubblesort(int a[],int n) { int i,j; for(i = 0;i<n;i++) //冒泡排序是每一次冒泡,就比较相邻两元素的大小,并交换 { for(j = n-1;j>i;j--) { if(a[j-1]>a[j]) { int temp = a[j]; a[j] = a[j-1]; a[j-1] = temp; } } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。