四种经典排序 冒泡,快排,插入,选择 C++实现
2016-10-22 14:52
423 查看
2016.8.23 C++
冒泡排序:
相邻两个元素做比较,满足要求,互换元素
void sortPole(){
int a[8]={5,10,9,2,3,4,6,7};
for (int i=1; i<8; i++) {//
for (int j=0; j<8-i; j++) {
if (a[j]<a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for (int i=0;i<8 ; i++) {
cout<<a[i]<<endl;
}
}
插入排序
void sortCharu(){
int a[8]={4,5,6,3,7,8,1,2};
for (int i=1; i<8; i++) {
int j=0;
while (j<i&&a[j]<=a[i]) {
j++;
}
if (j<i) {
int k=i;
int temp=a[i];
while (k>j) {
a[k]=a[k-1];
k--;
}
a[k]=temp;
}
}
for (int i=0; i<8; i++) {
cout<<a[i]<<endl;
}
}
选择排序(变相的冒泡排序)
void sortSelect(){
int a[8]={4,5,6,3,7,8,1,2};
for (int i=0; i<8; i++) {
// 每次让第一个元素为最小或最大
for (int j=i+1; j<8; j++) {
int index=i;
if (a[index]>a[j]) {
index=j;
}
if (index!=i) {
int temp=a[i];
a[i]=a[index];
a[index]=temp;
}
}
}
for (int i=0; i<8; i++) {
cout<<a[i]<<endl;
}
}
快速排序:
void sortSupai(int *arr,int low,int high){
if (low>=high) {
return;// 控制结束递归
}
int first=low;//设置最低点
int last=high;
int key=arr[first];// 设置key值
while (first<last) {
while (first<last&&arr[last]>=key){
--last;
}
arr[first]=arr[last];
while (first<last&&arr[first]<=key){
++first;
}
arr[last]=arr[first];
}
arr[first]=key;
sortSupai(arr, low,first-1);
sortSupai(arr, first+1,high);
}
冒泡排序:
相邻两个元素做比较,满足要求,互换元素
void sortPole(){
int a[8]={5,10,9,2,3,4,6,7};
for (int i=1; i<8; i++) {//
for (int j=0; j<8-i; j++) {
if (a[j]<a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for (int i=0;i<8 ; i++) {
cout<<a[i]<<endl;
}
}
插入排序
void sortCharu(){
int a[8]={4,5,6,3,7,8,1,2};
for (int i=1; i<8; i++) {
int j=0;
while (j<i&&a[j]<=a[i]) {
j++;
}
if (j<i) {
int k=i;
int temp=a[i];
while (k>j) {
a[k]=a[k-1];
k--;
}
a[k]=temp;
}
}
for (int i=0; i<8; i++) {
cout<<a[i]<<endl;
}
}
选择排序(变相的冒泡排序)
void sortSelect(){
int a[8]={4,5,6,3,7,8,1,2};
for (int i=0; i<8; i++) {
// 每次让第一个元素为最小或最大
for (int j=i+1; j<8; j++) {
int index=i;
if (a[index]>a[j]) {
index=j;
}
if (index!=i) {
int temp=a[i];
a[i]=a[index];
a[index]=temp;
}
}
}
for (int i=0; i<8; i++) {
cout<<a[i]<<endl;
}
}
快速排序:
void sortSupai(int *arr,int low,int high){
if (low>=high) {
return;// 控制结束递归
}
int first=low;//设置最低点
int last=high;
int key=arr[first];// 设置key值
while (first<last) {
while (first<last&&arr[last]>=key){
--last;
}
arr[first]=arr[last];
while (first<last&&arr[first]<=key){
++first;
}
arr[last]=arr[first];
}
arr[first]=key;
sortSupai(arr, low,first-1);
sortSupai(arr, first+1,high);
}
相关文章推荐
- 各类排序C++实现(冒泡,选择,插入,快排,归并,堆排)
- c++实现冒泡,选择,插入,快速排序
- C++实现各种基础排序(冒泡、选择、快排、插入、堆排、希尔、归并)
- 《面试》 几种经典的简单的排序方法(冒泡,选择,插入)python实现
- c++实现数据结构中的各种排序方法:直接插入、选择,归并、冒泡、快速、堆排序、shell排序
- Python实现冒泡,插入,选择排序简单实例
- 【转】排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- Java中实现简单的三大排序——冒泡、选择、插入
- 排序算法复习(Java实现)(二): 插入,冒泡,选择,Shell,快速排序
- C# 实现排序--冒泡--选择--插入
- Java实现数据排序(冒泡、选择、插入、快速排序)---方法持续更新中
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 常用排序算法的c++实现(冒泡,选择,插入,堆,shell,快速,归并 )与sort()对比 - coder_xia的专栏 - 博客频道 - CSDN.NET
- Java实现插入、冒泡、选择排序
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,快速排序
- 几种排序的java实现:选择、插入、冒泡、快排
- 四种简单的排序算法(插入、冒泡、选择排序、快速排序法)+汉诺塔算法
- Java实现数组排序总结篇(冒泡,选择,插入,希尔)