首页 > 代码库 > 排序算法的实现--理解方法实现
排序算法的实现--理解方法实现
以前也看过很多排序算法的原理,每次都想自己实现一下,一直都再拖,现在着牛课网学习算法课程,希望自己能够坚持练习。
//对于一个int数组,请编写一个选择冒泡算法,对数组元素排序。//给定一个int数组A及数组的大小n,请返回排序后的数组。//测试样例://[1, 2, 3, 5, 2, 3], 6//[1, 2, 2, 3, 3, 5]#include <iostream> using namespace std;#include<string>void printResult(string str,int* A,int n){ cout << str << "的结果:\n"; for (int i = 0; i < n; i++) { cout << A[i] <<" "; } cout << endl;}void swap(int a, int b){ int temp=a; a = b; b = a;}class BubbleSort {public: int* bubbleSort(int* A, int n) { // write code here for (int i = 0; i<n; i++) { for (int j = 0; j<n - i - 1; j++) { if (A[j]>A[j + 1]) { int temp = A[j]; A[j] = A[j + 1]; A[j + 1] = temp; } } } return A; }};//请编写一个选择排序算法class SelectionSort {public: int* selectionSort(int* A, int n) { // write code here int k = 0; for (int i = 0; i < n-1; i++) { k = i; for (int j = i; j < n; j++) { if (A[k]>A[j]) { k = j; } } if (k!=i) { int temp = A[i]; A[i] = A[k]; A[k] = temp; } } return A; }};//请编写一个选择插入算法class InsertionSort{public: int* insertionSort(int* A, int n) { for (int i = 1; i < n; i++) { int temp = A[i]; int j = i - 1; for (; j >= 0;j--) //j前面的已经排好序,从后面往前比较,当没有比当前值大的时候bereak; { if (A[j]>temp) { A[j + 1] = A[j]; } else { break; } } A[j + 1] = temp; } return A; }};int main(){ int N = 0; cout << "排序数据个数:\n"; cin >> N; int* A = new int[N]; cout << "请输入待排序的数据:\n"; for (int i = 0; i < N; i++) { cin >> A[i]; } BubbleSort bubble; bubble.bubbleSort(A,N); printResult("bubbleSort", A, N); SelectionSort select; select.selectionSort(A, N); printResult("selectSort", A, N); InsertionSort insert; insert.insertionSort(A, N); printResult("InsetSort", A, N); return 0;}
持续更新中......
排序算法的实现--理解方法实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。