java数据结构之基础排序算法

Java基础50道经典练习题(22年新版) Java的基础练习。 阅读详情

    数据结构的三大基础排序算法:冒泡排序,简单选择排序,直接插入排序。下面我来解释:(一律是顺序排序)

首先是冒泡排序:他的排序主旨是把大的数依次排到最后,像冒泡一样,下面是代码:

public static void mp(int arr[]){
        int count;                                           //定义一个中间值,用来替换
        boolean flag = true;                                 //定义一个标记变量,用来检验是否已经有序
        for (int i = 0; i < arr.length && flag; i++) {       //进入外层循环 
            flag = false;                                    //把标记变成假
            for (int j = 1; j < arr.length-i; j++) {         //进入内层循环
                if(arr[j]<arr[j-1]){                         //两个数比较,如果前面的大于于后面的,则进行交换(顺序排序)
                    count = arr[j];
                    arr[j] = arr[j-1];
                    arr[j-1] = count;
                    flag = true;                             //如果进行了交换,则意味着还没排好序
                }
            }
            System.out.println(i+":"+Arrays.toString(arr));
        }
    }

第二是简单选择排序:他的排序主旨是每次选择一个最小的,根据角标放到前面

public static void xz(int arr[]){
        int count;                                     //定义一个中间变量用来跟最小的换值
        int min;                                       //最小值得角标
        for (int i = 0; i < arr.length; i++) {
            min = i;                                     
            for (int j = i+1; j < arr.length; j++) {
                if(arr[min] > arr[j]){                 //如果这个值不是最小的,那么交换角标,保证最小
                    min = j;
                }
            }
            if(min != i){                              //最小值与前方的值互换,顺序排序
                count = arr[i];
                arr[i] = arr[min];
                arr[min] = count;
            }
            System.out.println(i+":"+Arrays.toString(arr));
        }
    }

第三种是直接插入排序:他的排序主旨是把一个值插入到前面比他小的值得后边

public static void cr(int arr[]) {
        int i,j;
        for (i = 1; i < arr.length; i++) {
            int temp = arr[i];                                //定义一个存储角标为i的值,为将插入对象
            for (j = i - 1; j >= 0 && temp < arr[j]; j--) {   //判断是否为需要将其插入到前面,直到比他小
                arr[j + 1] = arr[j];                          //值向后移动,为将插入值腾出空位,即arr[j]
            }
            arr[j+1] = temp;                                  //插入到合适位置
            System.out.println(i+":"+Arrays.toString(arr));
        }
    }
    这三种简单的排序算法适用于,你待排序序列总是基本有序的。而其中当记录关键字本身信息量很大(比如:关键字是数十位的数字),那么简单选择排序就非常有优势。
数据结构与算法基础(java版) 前言 数据结构与算法是一门相对比较枯燥,但也是编程人员必学的课程。通过学习数据结构与算法,可以提高我们在编程中的思维逻辑;本人也是小白一枚,学习了一段时间后,在这边总结下;尽量以比较白话的方式,来进行更好的理解。 数据结构概述 数据结构可以简单的理解为数据与数据之间所存在的一些关系,数据的结构分为数据的存储结构和数据的逻辑结构。 存储结构 ... 阅读详情

相关推荐

Java面试题超详细讲解系列之五【数据结构与算法篇】

图例结合五万字超详细讲解数据结构与算法面试会遇到的那些题

白大锅的博客,毕设WangLoveBai_999 5088

Java程序获取和修改.wav音频文件的内部结构

(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/qq_25827845/article/details/79498075冷血之心的博客)       wav音频文件是一种无损的音频文件,相对于MP3来说音质较好,当然文件大小也很大。        A WAVE file is often just a RIFF file with a single “WAVE” chun...

冷血之心的博客 8855

java — Wave音频文件的属性获取及文件合成

java获取WAVE文件的属性及wave文件的多合一方法。需要的请下载~谢谢 我的blog也有方案

java 修改wav文件头_Java 程序获取和修改. wav 音频文件的内部结构

Java 程序获取和修改. wav 音频文件的内部结构wav 音频文件是一种无损的音频文件, 相对于 MP3 来说音质较好, 当然文件大小也很大A WAVE file is often just a RIFF file with a single WAVE chunk which consists of two sub-chunks a fmt chunk specifying the dat...

weixin_39902472的博客 982

Java数据结构和算法第二版\java数据结构和算法[1].(第二版).part1.rar

Java数据结构和算法第二版\java数据结构和算法[1].(第二版).part1.rar

如何使用Ray和PyTorch训练模型

用户编写训练函数 → 定义单机训练逻辑。通过扩缩容配置 → 指定需要多少资源(Worker 数量、CPU/GPU)。训练器整合训练函数和配置 → 自动将训练函数分发到多个 Worker 上并行执行。Worker 运行训练函数 → 在分布式环境中完成模型训练。通过这种模式,Ray Train 实现了对分布式训练的抽象,用户只需关注单机训练逻辑,无需手动管理分布式通信和资源分配。

m0_62464865的博客 1922

Java数据结构与算法——希尔排序(插入算法优化)(算法效率测验)

希尔排序 我们看简单的插入排序可能存在的问题. 数组arr ={2,3,4,5,6,1}这时需要插入的数1(最小),这样的过程是: {2,3,4,5,6, 6} {2,3, 4,5,5, 6} {2,3,4,4, 5, 6} {2,3,3,4,5, 6} {2,2,3,4, 5, 6} {1,2,3, 4,5, 6} 结论:当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响. 希尔排序法介绍: 希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 希尔排序

Pausch的博客 283

微信小程序消息推送实战:从模板消息到订阅消息的进阶指南

本文详细解析了微信小程序消息推送的核心机制,重点对比了模板消息与订阅消息的差异与应用场景。模板消息适用于支付成功等强即时性业务回执,而订阅消息则需用户授权,更适合物流提醒等可预期通知。文章提供了从授权、配置到发送的完整实战指南,并分享了常见的避坑技巧与性能优化建议,帮助开发者构建高效、合规的用户触达体系。

weixin_29231027的博客 594

【数据结构】基础排序算法(Java实现)

package com.paixu; class shuzu{ int length; int r[] = new int[100]; //创建数组 public void create(int a[]){ for (int i = 0;i<=length;i++){ ...

chuangjin1715的博客 139

Python手记-9:Python LXML库XPath的爬取晋江书目

1. lxml库 lxml是功能最丰富且易于使用的库,用于处理Python语言中的XML和HTML,还可实现WEB爬取,官文参考:https://lxml.de/,完整的PDF文档下载链接https://lxml.de/lxmldoc-4.5.0.pdf,但是阅读起来……em……怪自己不够聪明的样子。 Linux下安装lxml库:[root@chengyu ~]# pip3 instal...

成屿的专栏 4万+

jlink驱动安装

jlink驱动下载安装及keil识别

qq_43868701的博客 3万+

JAVA基础篇--常见的数据结构和排序算法

常见的数据结构及排序算法

拽着尾巴的鱼儿的博客 988

Docker安装并运行AnythingLLM的详细教程

通过本文的介绍,你已经掌握了如何在 CentOS 系统上使用 Docker 安装并运行 AnythingLLM。AnythingLLM 提供了强大的功能,支持本地知识库搭建和多模态输入,非常适合个人和企业使用。希望本文能帮助你快速上手并搭建自己的 AI 知识库。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 5846

数据结构与算法篇——3种基础排序算法(Java版)

基础排序算法 本文主要介绍冒泡排序、选择排序和插入排序这3种基础排序算法。基础排序算法是学习希尔排序、快速排序等高级排序算法的基础,只有深刻掌握了前者,才有掌握后者的资格。比如希尔排序,就是增加了分组的插入排序。后续文章后会详细讲解高级排序算法,敬请期待。文章中如有失误,欢迎大家指出。 以升序,及从小到大排序为例,本文中3种排序算法都是以升序排序方式讲解。 假设 排序前的数据为:4,3,7,9,6 排序后的数据为:3,4,7,6,9 1.冒泡排序 大家可能都见过水烧开时气泡由锅底一个个冒出来的现象,这里冒泡

qq_43262128的博客 269

17、高通8155座舱平台--QNX开发基础

我个人习惯,拿到一个新板子,第一件事就是打开IDE,建一个空的QNX项目,然后跑一遍Hello World。比如,当触摸屏被按下时,驱动发一个脉冲给UI进程,告诉它“嘿,有人摸屏幕了”。我在8155上调试时,就遇到过因为脉冲优先级太低,导致触摸响应延迟的问题。IDE自带的编译器是qcc,它其实是gcc的封装。QNX的IPC机制,可以说是它最牛的地方。嗯,这套流程走下来,你对QNX开发的基本功就差不多了。QNX默认的消息缓冲区大小是64KB,如果你要传大块数据,比如音频流,那就得用共享内存了。

woailuojp的博客 51

VN5620以太网测试——DoIP配置

CANoe(CAN open environment)VN5620 :是一个紧凑而强大的接口,用于以太网网络的分析、仿真、测试和验证。VN5620 接口支持各种可能的应用。它适用于与其他总线系统、网络参与(例如在模拟和生成帧、测试中的负载和错误)的同步以太网监控。在2021年Vector公司的以太网接口卡VN5610和VN5640设备已经陆续停产,相应被VN5620和VN5650代替。参考文章了解DoIP协议——汽车以太网应用介绍。

诊断协议那些事儿's blog 3009

java基础复习笔记 数据结构_Java基础复习笔记基本排序算法

Java基础复习笔记基本排序算法1.排序排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究。而排序是计算机程序开发中常用的一种操作。为何需要排序呢。我们在所有的系统中几乎都要检索数据,而这些欲检索的数据如果有规律的话,比如按照某些字段、属性降序排序的话,那么从这些有规律的数据查询结果或者结果集的话就快速得多。2.常用算法常用的算法有:直接选择排序、堆排序、冒泡排序、快...

weixin_26905487的博客 183

linux那些事之numa balance

numa balance numa balance是页迁移技术最重要也是最开始使用应用的技术,主要是为解决由于调度器进程在两个node迁移造成访问内存性能问题。 numba balance通过页迁移技术,将不在运行节点的内存迁移到所运行的节点上。对应numa balance要注意几点: 防止进程在两个节点之前来回切换造成频繁进行页迁移(ping pang现场)从而影响性能。numa balance本身就是为了提高性能,不能因为造成频繁页迁移而对性能进行一个反向优化。 多个线程分布在不同线程 访.

weixin_42730667的博客 3908

java实现数据结构基数排序_【数据结构】基础排序算法(Java实现)

package com.paixu;class shuzu{int length;int r[] = new int[100];//创建数组public void create(int a[]){for (int i = 0;i<=length;i++){r[i] = a[i];}}//展示数组public void display(){System.out.println("这里是展示数组...

weixin_32616931的博客 104

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java数据结构与算法--三种排序算法

1.代码package com.evior.demo3; /** * 数组的排序 */ public class Sort { /** * 冒泡排序 */ public void sortT1(int [] arr){ for (int i=0;i&lt;arr.length-1;i++){ for (int j...

evior 218

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【java版】数据结构与算法分析学习之路【一】前言

一.数据结构和算法概述?【框范围】 基础数据结构主要包括表【数组+链表】、栈、队列【散列表】、树、图、堆。高级数据结构包括伸展树、红黑树、确定性跳跃表、AA树、treap树、k-d树、配对堆。常用的算法内容包括排序算法【插入排序+希尔排序+堆排序+归并排序+快速排序+桶式的排序+外部排序】、图论算法【最短路径算法】、其他【贪婪算法+分治算法+动态规划+随机化算法+回溯算法】、摊还分析【二

生命奇迹泉的专栏 2592

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

algorithms in java_GitHub - nntx/AlgorithmsInJava: 用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录...

用Java实现算法和数据结构本项目主要用于自己在工作之余记录用Java实现的算法和数据结构的源码;同时还会记录自己刷leetcode的题解思路等;经典排序算法排序算法总结排序名平均时间复杂度空间复杂度优势劣势适用场景稳定性冒泡排序O(n^2)O(1)稳定插入排序O(n^2)O(1)稳定计数排序O(M)对于用例少的数据,比如对人的年龄排序或者身高排序。稳定基数排序O(d(n+r))O(M)稳定桶排序...

weixin_33525438的博客 282

50道JAVA基础编程练习题

50道JAVA基础编程练习题 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... public class Prog1{ public static void main(Strin...

a768818702的博客 371

algorithms in java_GitHub - wensiyuanseven/AlgorithmsInJava: 用Java实现基础数据结构,排序算法、经典算法以及leetcode刷题记录...

用Java实现算法和数据结构本项目主要用于自己在工作之余记录用Java实现的算法和数据结构的源码;同时还会记录自己刷leetcode的题解思路等;经典排序算法排序算法总结排序名平均时间复杂度空间复杂度优势劣势适用场景稳定性冒泡排序O(n^2)O(1)稳定插入排序O(n^2)O(1)稳定计数排序O(M)对于用例少的数据,比如对人的年龄排序或者身高排序。稳定基数排序O(d(n+r))O(M)稳定桶排序...

weixin_28685483的博客 102

【Java数据结构与算法】基础篇(4):常用排序算法:冒泡、选择、插入、希尔、快速、归并、基数

本篇文章: 主要是关于java数据结构与算法的一些基本知识:常用排序算法:冒泡、选择、插入、希尔、快速、归并、基数、堆排序等【后续会补充堆排序】

qq_44366571的博客 478

排序算法概述

A:Java太烂了,不能直接操作硬件效率低,占内存,真不知道google为什么要用java来写Android上层。(A觉得估计是收了sun公司好处) B:C++简直坑爹,指针稍有不慎,就是埋下一个地雷,排查起来异常费劲,不知道什么时候就出现内存泄漏了。(B认为有些人到就是顽固不化) C:笑而不语。(薪水>A+B,出了苹果套装属性,典型高富帅) 。。。。。。。 诸如此类的争论...

weixin_30484739的博客 58
上一篇: 约瑟夫环问题
下一篇: 数据结构之快速排序优化版个人总结
wave_zf
博客等级 码龄9年 4粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值