8种Java排序算法总结6(ZZ)

8、 基数排序

以基数是10为例

① 根据数据项个位上的值,把所有的数据分为10组。

② 然后对这10组数据项重新排列:把所有关键字是以0结尾的数据排在最后面,然后是关键字结尾时1的数据项,照此顺序直到以9结尾的数据项。这个步骤被称为第一趟子排序。

③ 在第二趟子排序中,再次把所有的数据项分为10组,但是这一次是根据数据项十位上的值来分组。这次分组不能改变先前的排序顺序。也就是说,第二趟排序之后,从每一组数据项的内部来看,数据项的顺序保持不变;这趟排序必须是稳定。

④ 然后再把10组数据项重新合并,排在最前面的是十位上为0的数据项,然后是十位为1的数据项,如此排序到十位上为9的数据项

⑤ 对剩余位重复这个过程。如果某些数据项的位数少于其他数据项的,那么认为他们的最高位为0

public static int[] countSort(int[] a, int k) {

int[] b = new int[a.length];

int[] c = new int[10];


for (int i = 0; i < b.length; i++) {

b[i] = 0;

}


for (int i = 0; i < c.length; i++) {

c[i] = 0;

}


int s = 1;

for (int i = 0; i < k; i++) {

s = s * 10;

}


int temp1 = 0;

for (int i = 0; i < a.length; i++) {

temp1 = a[i] % s;

temp1 = temp1 * 10 / s;


c[temp1] = c[temp1] + 1;

}


for (int i = 1; i < c.length; i++) {

c[i] = c[i] + c[i - 1];

}


int temp2 = 0;

for (int i = a.length - 1; i >= 0; i--) {

temp1 = a[i];

temp2 = a[i] % s;

temp2 = temp2 * 10 / s;

b[c[temp2] - 1] = temp1;

c[temp2] = c[temp2] - 1;

}

return b;

}


参考文献:

1、Java数据结构与算法(第二版)

2、http://www.sorting-algorithms.com/

3、http://blog.youkuaiyun.com/yexinghai/archive/2009/10/10/4649923.aspx

4、http://yoyo08.iteye.com/blog/464556

5、http://www.java125.cn/article.asp?id=1683
卸载Jupyter Lab可以使用以下方法: 1. 使用conda卸载: 打开终端或命令提示符,运行以下命令: ``` conda uninstall jupyterlab ``` 这将卸载Jupyter Lab及其相关的依赖包。 2. 使用pip卸载: 打开终端或命令提示符,运行以下命令: ``` pip uninstall jupyterlab ``` 这将使用pip卸载Jupyter Lab。 请注意,根据引用\[1\]和引用\[2\]的内容,有时候完全卸载Jupyter Lab可能会有一些困难,因为可能会有一些残留文件。如果遇到这种情况,可以尝试手动删除残留文件。在终端或命令提示符中,进入/anaconda3/bin和/anaconda3/share这两个文件夹,查看是否有以"jupyter"开头的文件或文件夹,如果有,可以直接删除它们。 希望这些方法能够帮助您成功卸载Jupyter Lab。如果问题仍然存在,您可以尝试参考引用\[3\]中提供的教程,或者考虑完全卸载并重新安装Jupyter Lab。 #### 引用[.reference_title] - *1* *3* [Anaconda完全卸载Jupyter/Jupyter Lab](https://blog.youkuaiyun.com/Faster6/article/details/125190497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [如何不残留地卸载jupyter/lab](https://blog.youkuaiyun.com/qq_41782124/article/details/115100718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值