博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法
阅读量:5283 次
发布时间:2019-06-14

本文共 3751 字,大约阅读时间需要 12 分钟。

////  main.cpp//  1.1排序_冒泡排序////  Created by lujunjie on 2016/12/25.//  Copyright © 2016年 陆俊杰. All rights reserved.//#include 
using namespace std;int* bubbleSort(int* A, int n);int main(int argc, const char * argv[]) { // 升序 操作: // 第一轮,从0元素开始与相邻元素对比,大的往后放,直到把最大值放到 len - 1 位置 // 第二轮,从0开始与相邻元素对比,把最大值放到len - 1 - i 位置 // ** len - 1; 倒数第二跟最后值对比 // ** len - 1 - i; 比较过得无需再对比 int arr[8] = {
5,33,66,77,11,44,55,22}; int len = 8; for (int i = 0; i< len - 1; i++) { for (int j = 0; j< len - 1 - i; j++) { if (arr[j] > arr[j+1]) { int tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } for (int i = 0; i< len; i++) { cout << arr[i] << " "; } cout << endl; return 0;}
////  main.cpp//  1.2排序_插入排序////  Created by lujunjie on 2016/12/25.//  Copyright © 2016年 陆俊杰. All rights reserved.//#include 
using namespace std;int main(int argc, const char * argv[]) { int arr[13] = {
54,35,48,36,27,12,44,44,8,14,26,17,28}; int len = 13; for (int i = 0; i< len-1; i++) { if (arr[i] > arr[i+1]) { int index = i; int value = arr[i+1]; while (value < arr[index]) {
// 移动位置 arr[index + 1] = arr[index]; index--; if (index< 0) {
// 判断到[0] break; } } arr[index+1] = value;// 插入原来判断的哪个元素。 } } for (int i = 0; i< len; i++) { std::cout << arr[i] << " "; } return 0;}
////  main.cpp//  1.3排序_选择排序////  Created by lujunjie on 2016/12/25.//  Copyright © 2016年 陆俊杰. All rights reserved.//#include 
using namespace std;int selectMinKey(int *arr,int from,int to){ int index = from; for (int i = from + 1; i
arr[i]) { index = i; } } return index;}int main(int argc, const char * argv[]) { int arr[8] = {
5,33,66,77,11,44,55,22}; int len = 8; for (int i = 0; i< len; i++) { int min = i; for (int j = i + 1; j < len; j++) { if (arr[min] > arr[j]) { min = j; } } if (min!=i) { swap(arr[min], arr[i]); } } for (int i = 0; i< len; i++) { cout << arr[i] << " "; } cout << endl; return 0;}
////  main.cpp//  1.4排序_快速排序////  Created by lujunjie on 2016/12/26.//  Copyright © 2016年 陆俊杰. All rights reserved.//#include 
// 4 high = [2] low = [2]// 2 3 4 5 6 8using namespace std;int partition(int *pArr,int arrlen,int low,int high){ // 保存标准值 int standardVal = pArr[low]; while (low < high) { while (low < high && pArr[high] >= standardVal) { high--; } if (low < high) { swap(pArr[low], pArr[high]); } while (low < high && pArr[low] <= standardVal) { low++; } if (low < high) { swap(pArr[low], pArr[high]); } } return low;}void quickSortImpl(int *pArr,int arrLen,int low,int high){ if (low < high) { // 第一步:找到中间值 int centerPoint = partition(pArr,arrLen,low,high); // 第二步:前半部分排序 quickSortImpl(pArr, arrLen, low, centerPoint-1); //第三步:后半部分排序 quickSortImpl(pArr, arrLen, centerPoint+1, high); }}int main(int argc, const char * argv[]) { int a[15] = {
54,35,48,36,27,12,44,44,8,14,26,17,28,999,11}; int size = 15; quickSortImpl(a, size, 0, size-1); for (int i = 0; i < size; i++) { std::cout << a[i] << " "; } return 0;}

 

转载于:https://www.cnblogs.com/-ljj/p/6387793.html

你可能感兴趣的文章
HDU-1255 覆盖的面积 (扫描线)
查看>>
Java 中 静态方法与非静态方法的区别
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
线程池的概念
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
SWIFT国际资金清算系统
查看>>
站立会议第四天
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>