编程实现直接插入排序、希尔排序、冒泡排序、快速排序、选择排序
来源:互联网 发布:白苹果的数据能恢复吗 编辑:程序博客网 时间:2024/06/05 16:06
代码
#include <iostream>using namespace std;//直接插入排序void insert_sort(int a[],int n){ int i , j , temp; for(i = 1;i<n;i++) { temp = a[i]; for(j=i-1;j>=0&&temp<a[j]; j--) { a[j+1] = a[i]; } a[j+1] = temp; }}
//希尔排序//希尔排序实质上是一种分组插入排序void shell_sort(int a[],int n){ int h,i,j,temp; for(h = n/2;h>0;h=h/2) { for(i = h;i<n;i++) { temp = a[i]; for(j = i-h;(j>=0&&temp<a[j]);j-=h) { a[j+h] =a[j]; } a[j+h] = temp; } }}
//冒泡排序(原始)void bubble_sort(int a[],int len){ int i ,j,temp; for(i = 0;i<len-1;i++) { for(j = len -1;j>=i;j--) { if(a[j+1]<a[j]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } }}
//改进版的冒泡排序void bubble_sort2(int a[],int len){ int i ,j,temp; int exchange = 0; for(i = 0;i<len-1;i++) { exchange = 0; for(j = len-1;j>=i;j--) { if(a[j+1]<a[j]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; exchange = 1; } } if(exchange!=1) return; }}
//快速排序void quick_sort(int a[],int len){ int i ,j,pivot; if(low<high) { pivot = a[low]; i = low; j = high; while(i<j) { while(i<j&&a[j]>=pivot) j--; if(i<j) a[i++] = a[j]; while(i<j&&a[i]<=pivot) i++; if(i<j) a[j--] = a[i]; } a[i] = pivot; //pivot移动到最终位置 quick_sort(a,low,i-1); quick_sort(a,i+1,high); }}
//选择排序(不稳定)void select_sort(int a[],int len){ int i,j,x,l; for(i = 0;i<len;i++) { x=a[i]; l = i; for(j = j ;j<len;j++) { if(a[j]<x) { x = a[j]; l = j; } } a[l] = a[i]; a[i] = x; }}
阅读全文
0 0
- 编程实现直接插入排序、希尔排序、冒泡排序、快速排序、选择排序
- C++实现直接插入排序,折半插入排序,希尔排序,冒泡排序,简单选择排序,快速排序,堆排序
- 冒泡排序 快速排序 选择排序 堆排序 直接插入排序 希尔排序 归并排序
- 直接插入排序 + 希尔排序+ 冒泡排序+ 快速排序 + 直接选择排序 + 堆排序
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序...)
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- 排序算法: 冒泡排序, 快速排序,希尔排序,直接插入排序 ,直接选择排序,归并排序,堆排序
- 常见排序集合(冒泡排序,选择排序,直接插入排序,二分插入排序,快速排序,希尔排序,归并排序)
- IOS- 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序
- 直接插入排序、希尔排序、冒泡排序、快速排序
- 比较排序总结——直接插入排序,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序)
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序,堆排序)
- Java基础篇之----排序(快速排序、冒泡排序、堆排序、简单选择排序、 希尔排序、直接插入排序)
- 冒泡排序-直接选择排序-直接插入排序-希尔排序-java实现
- 冒泡排序, 简单选择排序, 插入排序, 希尔排序, 快速排序 js 实现
- 数据结构排序,冒泡,快速,直接选择,直接插入,希尔
- 常用的排序算法:插入排序,希尔排序,冒泡排序,选择排序,快速排序,归并排序
- 关于在一个Activity中启动相机时,生命周期的问题
- RabbitMQ 修改配置文件 启动rabiitQ
- Python+Selenium实现浏览器爬虫多窗口切换
- 1013. 数素数
- SPFA算法
- 编程实现直接插入排序、希尔排序、冒泡排序、快速排序、选择排序
- Fragment的简介及使用笔记
- C++ 常量对象,成员函数,引用
- POJ
- 点击Dialog以外的区域不让其隐藏的解决办法
- 完数(5分)
- 网易云课堂JAVA入门编程题6-1
- JAVA 构造方法与匿名对象
- CSS特殊样式(七)CSS3下的纸张效果实现展示