iOS开发中的一个排序问题

2018-04-09  本文已影响2人  梁森的简书

需求:

后台返回一个数组,数组有多个字典,每个字典有一个排序的标识,如果这个标识非零则按标识上的数字进行排序,如果是零则不参与排序按照原来的顺序排列。如果这个标识大于这个数组的长度则排在数组的末尾。

如一个数组中各个字典的标识标识分别是0、3、0、1、6则最终排序结果为:1、0、3、0、6

本人思路:

1. 将需要进行排序的和不需要进行排序的字典分别按照原来的顺序添加到两个数组(A、B两个数组)中。

数组A:0、0

数组B:3、1、6

2. 将需要进行排序的字典进行一个从低到高的有序排序(可利用冒泡法)。

数组B:1、3、6

3. 往不需要进行排序的数组(数组A)中添加非字典的元素,让其长度和原来包含所有字典的长度一样。

数组A:0、0、“假数据”、“假数组”、“假数组”

4. 将B数组中字典依次插入到数组A中,如果插入的字典的标识位大于数组的长度,则直接添加到数组A的末尾。

数组A:1、0、3、0、“假数组”、6、“假数组”、“假数组”

5. 再创建一个新的数组C,将数组A中所有的字典依次添加到数组C中,此时的数组C中的字典顺序就达到了我们的要求。

数组C:1、0、3、0、6

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

上一篇 下一篇

猜你喜欢

热点阅读